解析幾何求交之圓與二次曲面
eryar@163.com
Abstract. OpenCASCADE provides the analytic intersection between a conic and a quadric in the package IntAna.
Key Words. Analytic geometry, intersection, coninc, quadric
1. Introduction
OpenCASCADE中的包IntAna提供了解析幾何曲線(二次曲線)與解析曲面(二次曲面)求交、解析曲面與解析曲面求交的功能。其中IntAna分別是Intersection Analytic的前三個(gè)字母縮寫,表示解析幾何求交。
我們學(xué)過(guò)了《線性代數(shù)》中的二次型,其中二次型在解析幾何中的一個(gè)應(yīng)用就是二次曲線和二次曲面方程的化簡(jiǎn)及其性質(zhì)的分析。
本文主要結(jié)合源碼分析圓與二次曲面求交的實(shí)現(xiàn),其他二次曲線與二次曲面求交的可以依此類推。

2. Quadratic form
在解析幾何中,為了便于研究二次曲線

的幾何性質(zhì),我們可以選擇適當(dāng)?shù)淖鴺?biāo)旋轉(zhuǎn)變換

把方程化成標(biāo)準(zhǔn)形式:

根據(jù)標(biāo)準(zhǔn)形式中的系數(shù)來(lái)分析這個(gè)二次曲線是什么曲線,即圓、橢圓、拋物線、雙曲線。
在OpenCASCADE中解析幾何的二次曲面有以下幾種類型:
l gp_Pln:平面可看作二次曲面的特例
l gp_Sphere:解析球面
l gp_Cylinder:解析柱面
l gp_Cone:解析錐面
這些解析曲面都可以統(tǒng)一使用二次多項(xiàng)式來(lái)表示,即這個(gè)二次多項(xiàng)式的系數(shù)確定了一個(gè)二次曲面。OpenCASCADE中相應(yīng)的類是IntAna_Quaric:

3. Math Trigonometric Function Roots
OpenCASCADE中類IntAna_IntConicQuad中提供了二次曲線與二次曲面求交功能,其中計(jì)算圓與二次曲面相交的函數(shù)是:
//! Creates the intersection between a circle and a quadric.
Standard_EXPORT IntAna_IntConicQuad(const gp_Circ& C, const IntAna_Quadric& Q);
其實(shí)現(xiàn)原碼中注釋如下:
根據(jù)其注釋,可知其計(jì)算過(guò)程如下:將圓的方程在其局部坐標(biāo)系中用參數(shù)形式表示,

將二次曲面方程的系數(shù)也變換到圓的坐標(biāo)系中,因?yàn)閳A的參數(shù)方程中為0,所以將圓的參數(shù)方程代入二次曲面的方程后,和z相關(guān)的項(xiàng)的系數(shù)都可以簡(jiǎn)化了。

得到一個(gè)三角函數(shù)的方程后,這時(shí)就要引入基礎(chǔ)模塊中的數(shù)學(xué)工具集來(lái)解決問(wèn)題了。

類math_TrigonometricFunctionRoots主要用于對(duì)如下形式的三角函數(shù)方程進(jìn)行求解:

4. Conclusion
對(duì)于圓與二次曲面求交的實(shí)現(xiàn)來(lái)看,也可以不用變換二次曲面的坐標(biāo)系,直接將圓的參數(shù)方程代入曲面的二次方程中:

最終化簡(jiǎn)也可得到一個(gè)三角函數(shù)方程,但是計(jì)算量與變換曲面坐標(biāo)系對(duì)比來(lái)看會(huì)更大。
從上面的源碼分析可知,在OpenCASCADE中對(duì)于解析曲線與曲面求交使用二次多項(xiàng)式系數(shù)來(lái)表示的。通過(guò)將二次曲線用參數(shù)形式的方程來(lái)表示,并代入二次曲面的方程,化簡(jiǎn)后直接使用math包中的工具(多項(xiàng)式方程求解和三角函數(shù)求解工具)對(duì)方程進(jìn)行求解。
5. References
1. 同濟(jì)大學(xué)應(yīng)用數(shù)學(xué)系. 線性代數(shù)(第四版). 高等教育出版社
2. 丘維聲. 解析幾何. 北京大學(xué)出版社
為了方便大家在移動(dòng)端也能看到我的博文和討論交流,現(xiàn)已注冊(cè)微信公眾號(hào),歡迎大家掃描下方二維碼關(guān)注。