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

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>
            欧美精品在线免费| 夜夜爽夜夜爽精品视频| 亚洲欧美卡通另类91av| 欧美激情一区在线| 午夜亚洲视频| 在线亚洲精品福利网址导航| 亚洲精品黄色| 亚洲一区欧美二区| 欧美一级淫片播放口| 亚洲精品视频免费观看| 亚洲日本aⅴ片在线观看香蕉| 免费一级欧美片在线播放| 欧美69wwwcom| 亚洲剧情一区二区| 在线中文字幕一区| 欧美影院精品一区| 欧美日韩1234| 精品999成人| 亚洲在线一区二区| 欧美激情精品久久久久久免费印度| 国内精品免费午夜毛片| 伊伊综合在线| 在线天堂一区av电影| 欧美第一黄网免费网站| 亚洲已满18点击进入久久| 欧美巨乳波霸| 日韩视频免费观看| 亚洲精品国产日韩| 久久―日本道色综合久久| 欧美日韩中文精品| 在线不卡免费欧美| 久久久久久久一区二区| 亚洲一区二区三| 国产嫩草影院久久久久 | 亚洲精品视频一区二区三区| 亚洲性av在线| 99视频精品全部免费在线| 免费永久网站黄欧美| 亚洲国产欧美一区| 亚洲成人在线网站| 欧美激情视频给我| 欧美午夜寂寞影院| 韩国成人理伦片免费播放| 老司机免费视频一区二区三区| 亚洲欧美日本国产有色| 在线综合视频| 国产在线一区二区三区四区| 亚洲在线一区| 欧美在线关看| 日韩一二在线观看| 亚洲一区二区三区777| 国产午夜精品全部视频播放| 欧美在线看片a免费观看| 欧美中文字幕在线播放| 亚洲视频二区| 免费亚洲电影在线| 久久精品国产91精品亚洲| 免费人成网站在线观看欧美高清| 欧美日韩国产综合久久| 久久久福利视频| 欧美a级在线| 欧美一区二区三区的| 久久九九热免费视频| 亚洲一级黄色av| 男女精品视频| 欧美激情2020午夜免费观看| 国产伦精品一区二区三区| 亚洲精选一区二区| 亚洲片区在线| 欧美日韩一区不卡| 日韩一级大片| 亚洲午夜精品一区二区| 欧美国内亚洲| 亚洲人在线视频| 亚洲精品日日夜夜| 欧美.日韩.国产.一区.二区| 亚洲国产福利在线| 久久久久久久性| 乱码第一页成人| 亚洲黑丝在线| 欧美日产一区二区三区在线观看 | 欧美专区在线观看一区| 亚洲无线视频| 国产精品美女| 久久精品二区亚洲w码| 久久激情五月激情| 亚洲第一在线视频| 国产精品久久久久久久午夜片| 在线亚洲一区| 国产精品日本欧美一区二区三区| 亚洲免费中文字幕| 国产一区观看| 欧美理论电影网| 欧美自拍偷拍| 亚洲激情综合| 亚洲综合色丁香婷婷六月图片| 羞羞漫画18久久大片| 久久综合激情| 亚洲在线视频观看| 在线色欧美三级视频| 欧美三日本三级少妇三99| 欧美一区二区成人6969| 亚洲精品网站在线播放gif| 久久网站免费| 性做久久久久久久免费看| 亚洲美女黄网| 国产一区二区三区观看| 欧美日韩在线视频一区二区| 久久在线观看视频| 亚洲欧美日本国产专区一区| 亚洲福利视频一区| 欧美激情视频在线免费观看 欧美视频免费一 | 国产精品久久久久秋霞鲁丝| 久久久精品视频成人| 久久国产高清| 久久精品一区二区三区不卡| 亚洲欧洲日产国产综合网| 国产日本欧美在线观看 | 亚洲影院色无极综合| 亚洲国产精品第一区二区| 一区二区在线不卡| 狠狠网亚洲精品| 亚洲成色999久久网站| 亚洲国产你懂的| 亚洲乱码视频| 亚洲男人第一av网站| 亚洲免费在线精品一区| 亚洲男女自偷自拍| 久久精品免费观看| 亚洲丶国产丶欧美一区二区三区| 91久久久久久久久久久久久| 99re国产精品| 久久深夜福利免费观看| 亚洲激情小视频| 久久av老司机精品网站导航| 欧美成人a∨高清免费观看| 国产精品高潮粉嫩av| 亚洲福利视频在线| 亚洲性线免费观看视频成熟| 老司机精品视频一区二区三区| 中文精品一区二区三区| 久久夜色精品国产噜噜av| 欧美高清在线一区| 性欧美video另类hd性玩具| 欧美金8天国| 亚洲美女一区| 亚洲精品美女久久7777777| 免费在线看成人av| 亚洲大胆人体视频| 欧美二区乱c少妇| 欧美aⅴ99久久黑人专区| 久久国产一区二区| 国产美女一区二区| 欧美在线国产| 久久激情五月丁香伊人| 精品69视频一区二区三区| 久久久久女教师免费一区| 午夜精品影院在线观看| 国产午夜精品美女视频明星a级| 国产精品久久久久久久久搜平片 | 亚洲欧美日韩国产精品| 亚洲电影中文字幕| 欧美精品v日韩精品v国产精品 | 亚洲激情欧美激情| 欧美激情精品久久久久久蜜臀 | **网站欧美大片在线观看| 久热国产精品视频| 欧美va日韩va| 性视频1819p久久| 欧美a级大片| 久久精品1区| 欧美日韩在线播放一区| 欧美在线视频一区| 欧美高清hd18日本| 欧美中在线观看| 欧美人妖在线观看| 国产精品99久久久久久www| 欧美在线不卡| 亚洲欧美日韩一区二区| 欧美1区2区3区| 久久免费国产| 国产精品在线看| 一区二区三区四区五区视频 | 亚洲福利视频免费观看| 国产精品丝袜xxxxxxx| 欧美成人69| 国产自产在线视频一区| 在线视频精品一区| 中文日韩在线视频| 欧美日韩国产成人在线| 亚洲国内精品在线| 亚洲精品一二| 欧美国产欧美综合 | 亚洲国产专区校园欧美| 久久精品女人天堂| 免费成人av在线| 在线国产亚洲欧美| 久久免费少妇高潮久久精品99| 激情五月***国产精品| 欧美一区二区三区免费在线看|