青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE圓與平面求交

Posted on 2019-09-19 13:19 eryar 閱讀(1933) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE圓與平面求交

eryar@163.com

 

在 解析幾何求交之圓與二次曲面中分析了OpenCASCADE提供的類IntAna_IntConicQuad可以用來計算圓與二次曲面之間的交點,這個算法是將平面Plane作為二次曲面的一個特例來處理,最后主要是對三角函數方程進行求解。

 

當直接使用圓和平面作為參數時,IntAna_IntConicQuad重載了函數Perform來對圓和平面進行求交計算,這時的算法與前面解三角函數不同,代碼如下:

void IntAna_IntConicQuad::Perform (const gp_Circ& C, const gp_Pln& P,
                  const Standard_Real Tolang,
                  const Standard_Real Tol)
{
  
  done=Standard_False;
  
  gp_Pln Plconic(gp_Ax3(C.Position()));
  IntAna_QuadQuadGeo IntP(Plconic,P,Tolang,Tol);
  if (!IntP.IsDone()) {return;}
  if (IntP.TypeInter() == IntAna_Empty) {
    parallel=Standard_True;
    Standard_Real distmax = P.Distance(C.Location()) + C.Radius()*Tolang;
    if (distmax < Tol) {
      inquadric = Standard_True;
    }
    else {
      inquadric = Standard_False;
    }
    done=Standard_True;
  }
  else     if(IntP.TypeInter() == IntAna_Same) { 
    inquadric = Standard_True;
    done = Standard_True;
  }
  else {
    inquadric=Standard_False;
    parallel=Standard_False;
    gp_Lin Ligsol(IntP.Line(1));
    
    gp_Vec V0(Plconic.Location(),Ligsol.Location());
    gp_Vec Axex(Plconic.Position().XDirection());
    gp_Vec Axey(Plconic.Position().YDirection());
    
    gp_Pnt2d Orig(Axex.Dot(V0),Axey.Dot(V0));
    gp_Vec2d Dire(Axex.Dot(Ligsol.Direction()),
          Axey.Dot(Ligsol.Direction()));
    
    gp_Lin2d Ligs(Orig,Dire);
    gp_Pnt2d Pnt2dBid(0.0,0.0);
    gp_Dir2d Dir2dBid(1.0,0.0);
    gp_Ax2d Ax2dBid(Pnt2dBid,Dir2dBid);
    gp_Circ2d Cir(Ax2dBid,C.Radius());
    
    IntAna2d_AnaIntersection Int2d(Ligs,Cir);
    
    if (!Int2d.IsDone()) {return;}
    
    nbpts=Int2d.NbPoints();
    for (Standard_Integer i=1; i<=nbpts; i++) {
      
      gp_Pnt2d resul(Int2d.Point(i).Value());
      Standard_Real X= resul.X();
      Standard_Real Y= resul.Y();
      pnts[i-1].SetCoord(Plconic.Location().X() + X*Axex.X() + Y*Axey.X(),
             Plconic.Location().Y() + X*Axex.Y() + Y*Axey.Y(),
             Plconic.Location().Z() + X*Axex.Z() + Y*Axey.Z());
      paramonc[i-1]=Int2d.Point(i).ParamOnSecond();
    }
    done=Standard_True;
  }
}

從上述代碼中可以看出,直接對圓和平面求交的算法步驟如下:

l 對圓所在平面與平面進行求交,來判斷圓所在平面與平面的狀態:平行或是圓在平面內部;

l 如果圓所在平面與平面不平行,則得出交線;

l 然后將交線和圓轉換成二維空間進行求交計算;

 

我覺得在得出圓所在平面與平面的交線后,再轉換到二維空間來計算交點的方法有點復雜。在得到兩個平面的交線后,就可以直接將圓心P0坐標向交線投影得到垂點Pm,先判斷圓心到Pm點距離等于半徑時,圓和平面就只有一個交點,就是Pm。小于半徑時有兩個交點,將Pm沿著交線方向分別移動L和-L距離就可以得到交點了,其中:

 

這樣處理只涉及到一個點向直線投影、一個開方及幾個向量操作,代碼簡單容量理解。


為了方便大家在移動端也能看到我的博文和討論交流,現已注冊微信公眾號,歡迎大家掃描下方二維碼關注。
Shing Liu(eryar@163.com)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品久久7777| 欧美性猛交xxxx乱大交退制版| 国产精品久久久久久久午夜片| 亚洲主播在线播放| 亚洲一区二区三区精品视频| 国产欧美日韩精品丝袜高跟鞋| 久久久7777| 欧美福利电影在线观看| 99在线精品视频在线观看| 亚洲视频在线观看一区| 国产一区二区三区在线观看精品| 欧美91精品| 欧美视频在线观看一区| 久久久久久网站| 欧美精品综合| 欧美在线视频一区| 欧美国产日韩一区二区三区| 亚洲一区在线观看免费观看电影高清| 亚洲欧美另类在线观看| 91久久极品少妇xxxxⅹ软件| 一区二区三区精品视频| 在线日韩欧美| 亚洲午夜精品福利| 亚洲高清免费视频| 亚洲自拍偷拍麻豆| 亚洲日本在线观看| 欧美一区二视频| 宅男精品视频| 免费久久99精品国产| 欧美一站二站| 欧美视频一区在线| 欧美大片免费久久精品三p| 国产精品免费看片| 亚洲人在线视频| 红桃视频国产精品| 亚洲午夜精品| 一区二区精品在线| 牛牛国产精品| 男人的天堂成人在线| 国产精品一区二区久久| 亚洲美女一区| 亚洲精品视频在线看| 久久久夜夜夜| 久久天天躁狠狠躁夜夜av| 国产精品国产亚洲精品看不卡15| 亚洲高清视频的网址| 在线国产亚洲欧美| 亚洲视频在线免费观看| 亚洲激情二区| 亚洲国产精品久久人人爱蜜臀 | 亚洲一区制服诱惑| 亚洲视频专区在线| 欧美剧在线免费观看网站| 亚洲成色777777在线观看影院| 国内久久精品视频| 欧美在线一级va免费观看| 久久99在线观看| 国产日韩精品一区观看| 亚洲欧美日韩国产一区二区三区 | 国产精品自在在线| 午夜激情一区| 久久精品国产2020观看福利| 国产偷久久久精品专区| 午夜精品999| 久久蜜桃香蕉精品一区二区三区| 国产午夜精品全部视频在线播放| 欧美一区免费| 欧美.日韩.国产.一区.二区| 亚洲大片免费看| 女仆av观看一区| 亚洲人成毛片在线播放| 亚洲夜晚福利在线观看| 国产精品视频一二| 欧美一区二视频| 蘑菇福利视频一区播放| 日韩午夜三级在线| 国产精品久久久久一区二区三区| 亚洲自拍另类| 免费欧美日韩| 亚洲私人黄色宅男| 国产欧美在线看| 老司机精品视频一区二区三区| 亚洲大胆人体在线| 亚洲午夜精品一区二区三区他趣| 国产精品网站视频| 久久亚洲一区| 中文无字幕一区二区三区| 久久精品国产精品| 亚洲精一区二区三区| 国产精品盗摄久久久| 久久久夜精品| 亚洲午夜一区二区三区| 久久综合九九| 亚洲欧美在线看| 亚洲第一天堂av| 国产精品你懂的在线欣赏| 久久香蕉国产线看观看av| 一本一本久久a久久精品综合麻豆| 香蕉成人久久| 亚洲毛片一区二区| 国产一区二区三区在线免费观看| 欧美高清你懂得| 欧美在线观看一区二区三区| 亚洲精品视频免费观看| 另类综合日韩欧美亚洲| 亚洲综合日本| 亚洲精品日韩欧美| 伊人久久大香线| 国产精品三级久久久久久电影| 蜜桃av综合| 久久国产精品99国产精| 一区二区高清在线| 亚洲国产视频一区二区| 久久激情视频免费观看| 国产日韩精品一区观看| 亚洲一区激情| 91久久久久| 欧美成人日本| 久久久夜色精品亚洲| 午夜精品福利视频| 亚洲四色影视在线观看| 亚洲伦理精品| 亚洲激情网站| 亚洲二区精品| 尤物在线观看一区| 狠狠色伊人亚洲综合网站色| 国产精品外国| 国产麻豆日韩| 国产精品一区二区你懂的| 国产精品成人播放| 欧美三级电影一区| 欧美午夜精品久久久久久超碰| 欧美精品97| 欧美日韩国产一区| 欧美日韩一级片在线观看| 欧美精品二区| 欧美三级中文字幕在线观看| 欧美精品18+| 欧美体内she精视频在线观看| 欧美日韩免费在线观看| 欧美日韩精品免费观看| 欧美日韩免费观看一区=区三区| 欧美电影在线播放| 欧美日韩aaaaa| 欧美三区在线视频| 国产精品久久久久久久久久免费看 | 欧美国产精品人人做人人爱| 男人的天堂亚洲| 欧美久久久久久| 欧美色区777第一页| 国产老女人精品毛片久久| 国产精品中文在线| 国内精品美女在线观看| 亚洲国产精品第一区二区| 最新亚洲一区| 亚洲一区二区三| 欧美专区在线观看一区| 久久久久久久性| 亚洲高清视频在线| 一区二区三区成人| 欧美一区二区观看视频| 美女精品一区| 欧美午夜在线视频| 激情综合亚洲| 日韩一级视频免费观看在线| 午夜欧美大尺度福利影院在线看| 久久精品国产精品亚洲综合| 欧美激情1区2区3区| 一区二区精品| 久久婷婷国产综合尤物精品| 欧美日韩精品是欧美日韩精品| 国产日韩av高清| 亚洲精品欧美日韩| 久久国产日韩| 亚洲日本在线视频观看| 欧美在线3区| 欧美日韩国产美| 狠狠入ady亚洲精品| 亚洲天堂成人| 欧美成人激情视频| 亚洲影音先锋| 欧美极品在线视频| 国产综合久久| 午夜日韩av| 亚洲精品色图| 久久综合一区二区三区| 国产精品视频一二三| 日韩系列在线| 蜜臀久久久99精品久久久久久| 亚洲视频1区| 欧美交受高潮1| 亚洲国产精品va| 久久精品午夜| 欧美亚洲日本一区| 麻豆精品网站| 女生裸体视频一区二区三区| 亚洲视频免费看| 欧美日韩国产在线一区| 亚洲国产精品激情在线观看| 久久免费视频观看|