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

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0
Intersection between a 2d line and a conic in OpenCASCADE

eryar@163.com

Abstract. OpenCASCADE provides the algorithm to implementation of the analytical intersection between a 2d line and another conic curve. The conic is defined by its implicit quadaratic equation, so the intersection problem is become a polynomial roots finding problem. The paper focus on the 2d line intersection another conic algorithm implementation.

Key Words. 2d line intersection, conic

1.Introduction

高中的時候學習了直線Line、圓Circle、圓錐曲線Conic(橢圓Ellipse、雙曲線Hyperbola和拋物線parabola)等二維曲線的方程及特性,也可以對他們之間的相交情況進行計算。如何編程實現直線與任意圓錐曲線相交呢?本文通過對OpenCASCADE中二維直線與圓錐曲線相交代碼的分析來理解其實現原理。

wps8878.tmp

Figure 1. 直線與圓錐曲線相交

對于二維曲線知識的學習又把思緒拉回到高中年代,翻開泛黃的課本,遙想那個青澀時候,對于《數學》的學習也是停留在解題上,沒有理解,更別說應用了。有人說數學、英語和代碼是當今的世界語言,都可以進行思想的交流。數學本來就是描述現實世界規律的精妙語言,但我終究是個俗人,更崇拜能應用數學創建價值的人,如OpenCASCADE的開發者們。

2.Conic Implicit Equation

圓錐曲線一般的代數表示方法為:

wps8879.tmp

OpenCASCADE中使用類IntAna2d_Conic來表示圓錐曲線的代數方程。并提供了將二維曲線(直線、圓、橢圓、拋物線、雙曲線)轉換成代數方程的方法,相關代碼如下所示:

IntAna2d_Conic::IntAna2d_Conic (const gp_Lin2d& L) {
  a = 0.0;
  b = 0.0;
  c = 0.0;
  L.Coefficients(d,e,f);
  f = 2*f;
}
IntAna2d_Conic::IntAna2d_Conic (const gp_Circ2d& C) {
  C.Coefficients(a,b,c,d,e,f);
}
IntAna2d_Conic::IntAna2d_Conic (const gp_Elips2d& E) {
  E.Coefficients(a,b,c,d,e,f);
}
IntAna2d_Conic::IntAna2d_Conic (const gp_Parab2d& P) {
  P.Coefficients(a,b,c,d,e,f);
}
IntAna2d_Conic::IntAna2d_Conic (const gp_Hypr2d& H) {
  H.Coefficients(a,b,c,d,e,f);
}


3.Intersection Implementation

當對直線和圓錐曲線進行求交時,先得到了直線的一般式方程和圓錐曲線的一般式方程,將它們聯立成方程組如下所示:

wps887A.tmp

是一個二元二次方程組。通過直線的參數表示法,將上述二元二次方程組轉換成一元二次方程,再對這個方程進行求解。設直線l經過點P0(x0,y0),v=(a, b)是它的一個方向向量。P(x,y)是直線上任意一點,則向量P0P與v共線。根據向量共線的充要條件,存在唯一實數t,使:

wps887B.tmp

將直線的一般式化為參數式為:

wps887C.tmp

將直線的參數式代入圓錐曲線的一般式得到:

wps887D.tmp

整理上述方程得:

wps887E.tmp

得到各次系數后,就可以用Newton法來解這個一元二次方程了。OpenCASCADE中的實現代碼如下所示:

 

void IntAna2d_AnaIntersection::Perform (const gp_Lin2d& L,
                   const IntAna2d_Conic& Conic)
{
  Standard_Real A,B,C,D,E,F;
  Standard_Real px0,px1,px2;
  Standard_Real DR_A,DR_B,DR_C,X0,Y0;
  Standard_Integer i;
  Standard_Real tx,ty,S;
  
  done = Standard_False;
  nbp  = 0;
  para = Standard_False;
  iden = Standard_False;
 
  Conic.Coefficients(A,B,C,D,E,F);
  L.Coefficients(DR_A,DR_B,DR_C);
  X0=L.Location().X();
  Y0=L.Location().Y();
  
  // Parametre: L
  
// X = Xo - L DR_B    et     Y = Yo + L DR_A

  px0=F + X0*(D+D + A*X0 + 2.0*C*Y0) + Y0*(E+E + B*Y0);
  px1=2.0*(E*DR_A - D*DR_B + X0*(C*DR_A - A*DR_B) + Y0*(B*DR_A - C*DR_B));
  px2=DR_A*(B*DR_A - 2.0*C*DR_B) + A*(DR_B*DR_B);
  
  MyDirectPolynomialRoots Sol(px2,px1,px0);
  
  if(!Sol.IsDone()) {
    done=Standard_False;
    return;
  }
  else { 
    if(Sol.InfiniteRoots()) {
      iden=Standard_True;
      done=Standard_True;
      return;
    }
    nbp=Sol.NbSolutions();
    for(i=1;i<=nbp;i++) {
      S=Sol.Value(i);
      tx=X0 - S*DR_B;
      ty=Y0 + S*DR_A;
      lpnt[i-1].SetValue(tx,ty,S);
    }
    Traitement_Points_Confondus(nbp,lpnt);
  }
  done=Standard_True;
}

從上述源碼可知,OpenCASCADE使用了直線的參數式來將直線與圓錐曲線的求交表示成一元二次方程,再使用Newton法來對方程進行求解。 其中變量px0、px1、px2分別表示一元二次方程的零次、一次和二次項的系數。

4.Conclusion

通過圓錐曲線的一般式和直線的參數式將直線與圓錐曲線相交問題變成一個一元二次方程的求根問題,再通過方程求根的Newton法來對一元二次方程進行求解。

5.References

1. 人民教育出版社中學數學室. 數學第二冊上. 人民教育出版社. 2000

2. 易大義, 沈云寶, 李有法. 計算方法. 浙江大學出版社. 2002

3. 李原, 張開富, 余劍峰. 計算機輔助幾何設計技術及應用. 西北工業大學出版社. 2007

4. 丘維聲. 解析幾何. 北京大學出版社. 1996

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产日韩欧美中文| 久久久久国产精品麻豆ai换脸| 欧美日韩免费区域视频在线观看| 久久综合电影| 国产精品一二三| 日韩视频精品在线| 亚洲精品精选| 女人色偷偷aa久久天堂| 免费观看在线综合色| 国产亚洲一区二区三区在线播放| 亚洲婷婷综合色高清在线| 中文日韩欧美| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美亚洲成人免费| 亚洲另类在线视频| 99视频超级精品| 欧美日本一区二区三区| 亚洲国产你懂的| 亚洲韩国青草视频| 欧美激情久久久久| 日韩天堂av| 亚洲欧美日韩国产综合精品二区| 欧美调教vk| 亚洲一区二区三区影院| 欧美影院在线播放| 狠狠色2019综合网| 浪潮色综合久久天堂| 欧美大色视频| 一区二区三区www| 国产精品综合不卡av| 欧美制服丝袜| 欧美激情第五页| 亚洲性感美女99在线| 国产拍揄自揄精品视频麻豆| 久久精品国产免费观看| 欧美成人自拍| 一区二区三区 在线观看视| 国产精品都在这里| 欧美在线观看视频| 亚洲国产欧美国产综合一区 | 午夜亚洲福利| 久久尤物视频| 99re6热在线精品视频播放速度| 欧美日韩在线播放一区| 午夜精品999| 亚洲电影免费观看高清| 亚洲在线视频网站| 激情久久一区| 欧美日韩免费观看中文| 欧美专区第一页| 亚洲国产午夜| 欧美一区二区三区免费视| 亚洲激情婷婷| 国产精品婷婷| 欧美成人免费观看| 亚洲主播在线播放| 亚洲国产精品成人综合色在线婷婷| 亚洲小视频在线观看| 在线不卡中文字幕| 国产精品成人在线| 欧美88av| 欧美在线视频导航| 日韩视频在线观看国产| 久久一区二区三区av| 亚洲一二三区在线观看| 91久久久久久久久久久久久| 国产精品专区h在线观看| 欧美成人蜜桃| 欧美黄色日本| 亚洲日韩欧美视频| 久久亚洲综合| 午夜电影亚洲| 亚洲免费大片| 在线欧美日韩国产| 国产片一区二区| 欧美日韩裸体免费视频| 久久久久久久久久久久久女国产乱| 日韩亚洲国产精品| 欧美激情一区二区三区在线视频观看 | 影音国产精品| 亚洲欧美日韩国产| 99re热这里只有精品免费视频| 男人的天堂成人在线| 久久国产精品99国产精| 亚洲视频香蕉人妖| 日韩一级成人av| 亚洲国产综合视频在线观看| 好吊日精品视频| 国产日韩一区在线| 国产乱码精品一区二区三区不卡| 欧美午夜电影完整版| 欧美日韩国产页| 欧美成人蜜桃| 欧美国产免费| 欧美国内亚洲| 欧美成在线观看| 欧美aⅴ99久久黑人专区| 久久亚洲影音av资源网| 久久久久久噜噜噜久久久精品| 欧美一区日本一区韩国一区| 小黄鸭精品密入口导航| 香蕉久久夜色精品| 午夜一区不卡| 欧美在线播放一区二区| 久久精品女人的天堂av| 久久久久久亚洲精品杨幂换脸| 欧美主播一区二区三区美女 久久精品人| 亚洲欧美制服另类日韩| 性欧美办公室18xxxxhd| 欧美综合第一页| 久久久久一本一区二区青青蜜月| 久久精品一本| 老司机午夜精品| 欧美巨乳在线| 国产精品sss| 国产亚洲免费的视频看| 激情婷婷欧美| 亚洲人午夜精品| 在线亚洲精品| 欧美一级在线视频| 久久精品国产一区二区电影 | 悠悠资源网亚洲青| 1000精品久久久久久久久 | 欧美日韩免费视频| 国产精品一区二区久久国产| 国产日韩精品久久| 在线高清一区| 99国产精品99久久久久久| 欧美刺激性大交免费视频 | 好看的日韩视频| 亚洲电影欧美电影有声小说| 亚洲人成在线观看一区二区| 亚洲一本视频| 久久夜色精品| 99爱精品视频| 欧美一区二区三区四区高清| 久久综合电影一区| 欧美日韩中文在线观看| 国产主播喷水一区二区| 亚洲激情成人| 翔田千里一区二区| 欧美 日韩 国产在线| 亚洲精品日产精品乱码不卡| 亚洲欧美中文另类| 欧美大片免费看| 国产精品一二一区| 亚洲国产精品va在线看黑人动漫| 亚洲图片欧美一区| 美女999久久久精品视频| 日韩午夜在线视频| 久久天堂av综合合色| 欧美视频导航| 伊人久久亚洲影院| 亚洲一区二区成人| 欧美成人首页| 午夜精品久久久久久| 欧美区国产区| 狠狠入ady亚洲精品| 亚洲网站在线| 亚洲欧洲av一区二区| 欧美激情中文不卡| 亚洲欧美日本国产有色| 欧美成人午夜激情在线| 国产精品专区一| 夜夜夜久久久| 女女同性精品视频| 亚洲你懂的在线视频| 欧美aⅴ一区二区三区视频| 国产欧美一区二区精品仙草咪 | 影音先锋亚洲视频| 亚洲女性喷水在线观看一区| 亚洲国产一区二区三区青草影视| 午夜亚洲精品| 国产精品久久久久久久久久久久久 | 欧美bbbxxxxx| 黄色日韩网站| 欧美在线观看视频一区二区三区 | 久久全球大尺度高清视频| 日韩视频精品在线观看| 美女久久一区| 在线观看欧美日韩国产| 久久久久久久久久久一区 | 亚洲精品在线二区| 麻豆91精品| 精品999在线播放| 欧美中文字幕不卡| 亚洲小视频在线观看| 欧美日韩亚洲激情| 9久草视频在线视频精品| 一区二区三区不卡视频在线观看 | 久久久999成人| 亚洲伊人网站| 国产精品美女黄网| 亚洲欧美日产图| 亚洲性色视频| 国产精品久久久久天堂| 亚洲小视频在线观看| 一级成人国产| 国产精品入口| 欧美一区二区|