解析几何之二次型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解析⼏何之⼆次型
解析⼏何之⼆次型
Abstract. 通过⼆次多项式的形式把⼆次曲线和⼆次曲⾯之间的求交问题统⼀成对将参数⽅程代⼊隐式⽅程得到问题的求解。
Key Words. Quadratic Form, Conic, Analytical Intersection
1. Introduction
⼆次型(quadratic form):n个变量的⼆次多项式称为⼆次型,即在⼀个多项式中,未知数的个数为任意多个,但每⼀项的次数都为2的多项式。
线性代数的重要内容之⼀,它起源于⼏何学中⼆次曲线⽅程和⼆次曲⾯⽅程化为标准形问题的研究。
⼆次型理论与域的特征有关。
⼆次型是n个变量上的⼆次齐次多项式。
下⾯给出⼀个、两个、和三个变量的⼆次形式:
其中a, ...,f是系数。
注意⼀般的⼆次函数和⼆次⽅程不是⼆次形式的例⼦,因为它们不总是齐次的,可能包含⼀次项和常数项。
⼏何造型中的圆锥曲线Conic Curve与⼆次曲⾯Quadric是⼀般的⼆次⽅程,⽅程分别为:
在学习《线性代数》时也有关于⼆次型及其标准型的内容,在同济第四版《线性代数》书中这样写到“⼆次型及其标准型,这样⼀个问题,在许多理论问题或实际问题中常会遇到,现在我们把这类问题⼀般化,讨论n个变量的⼆次齐次多项式的化简问题。
” 学这个有什么⽤啊?能解决哪些实际问题?下⾯我们看看⼆次型在实际问题中的应⽤。
2. Classification
在《⼯程技术中的偏微分⽅程》⼀书中,有⼆次型的⼀个应⽤,即对⼆次线性⽅程的分类Classification。
我们从实际问题出发,可以推导并建⽴热传导⽅程,波动⽅程和Laplace⽅程,同时指出他们分别是抛物型、双曲型和椭圆型三类⽅程的典型代表。
设有⼆阶线性⽅程
在解析⼏何中,XOY平⾯上的⼆次曲线⽅程的⼀般形式:
通过适当的坐标变换可以将上式化简成椭圆、双曲线和抛物线的标准⽅程,即对于任意⼆次圆锥曲线,都可以通过化成标准型的⽅法来判断圆锥曲线的类型。
根据不同的类型,选择不同的求解⽅法。
3. Analytical Intersection
在《计算机图形学基础教程》书中有⼀章节“求交分类”,对⼏何曲线曲⾯求交进⾏了分析。
摘录书中部分内容如下:
在⼏何造型中,通常利⽤集合运算(并、交、差运算)实现复杂形体的构造,⽽集合运算(布尔运算)需要⼤量的求交运算。
如何提⾼求交的实⽤性、稳定性、速度和精度等,对⼏何造型系统⾄关重要。
在早期的⼏何造型系统中,⽤多⾯体来表⽰形体。
在这种多⾯体模型中,形体所有的表⾯都是平⾯,所有的边都是直线段,因此求交计算主要是线段和平⾯的求交,求交问题的解决都相对简单。
但多⾯体模型的缺点是明显的。
它只能近似表⽰形体。
同时,复杂形体表⾯的离散会带来巨⼤的数据量,要求计算机有较⾼的存储量和运算速度。
因此,有必要采⽤精确表⽰的形体模型,然⽽精确表⽰的形体也会给⼏何造型系统引⼊复杂的⼏何元素,也必然给⼏何元素的求交带来困难。
CSG模型是曾被⼴泛使⽤的形体表⽰模型,在这种模型中,形体通过基本体素的组合来实现,基本体素通常是⽴⽅体、圆柱、圆锥、球和圆环体等。
基于CSG表⽰的造型系统,引⼊了⼆次曲⾯体和基本体素后,⼆次曲⾯的求交在这些造型系统中是不可避免的。
当前的⼏何造型系统,⼤多采⽤精确的边界表⽰BREP模型。
在这种表⽰法中,形体的边界元素和某类⼏何元素对应,它们可以是直线、圆弧、⼆次曲线、Bezier曲线和B样条曲线等,也可以是平⾯、圆环⾯Torus、⼆次曲⾯、Bezier曲⾯和B样条曲⾯等,求交情况⼗分复杂。
对于含有两个变量的⼆次⽅程,对应的是⼆维⼆次圆锥曲线,在OpenCASCADE中的类gp_Circ2d, gp_Elips2d, gp_Hypr2d, gp_Parab2d, 他们都有⼀个函数Coefficients,能计算其⼆次型的系数。
在解析⼏何曲线求交计算包中IntAna2d,提供了⼀个类IntAna2d_Conic⽤来表⽰圆锥曲线,类IntAna2d_AnaIntersection可以对这些圆锥曲线进⾏求交计算。
对于含有三个变量的⼆次⽅程,对应的是三维⼆次曲⾯,在OpenCASCADE中的类有gp_Pln, gp_Sphere, gp_Cylinder, gp_Cone, 他们也都有⼀个函数Coefficients,能计算其⼆次型的系数。
在解析⼏何求交计算包中IntAna,提供了⼀个类IntAna_Quadric⽤来表⽰⼆次曲⾯。
类IntAna_QuadQuad使⽤解析法(解⽅程)对两个⼆次曲⾯进⾏求交计算;类IntAna_QuadQuadGeo使⽤⼏何⽅法对两个⼆次曲⾯进⾏求交计算;类IntAna_ConicQuad⽤来对圆锥曲线和⼆次曲⾯进⾏求交计算。
3.1 ⼆次曲线与⼆次曲线求交
⼆次曲线与⼆次曲线求交指的是⽤代数⽅法来计算两个曲线之间的相交情况,对应的类是IntAna2d_AnaIntersection。
代数⽅法是利⽤代数运算,特别是求解代数⽅程的⽅法求解。
由于圆锥曲线在其局部坐标系下具有标准的隐式⽅程和参数⽅程的噶啊,这类求交的策略是将坐标系变换到该圆锥曲线的局部坐标系下,⼀个圆锥曲线⽤隐式⽅程的形式表⽰,另⼀个圆锥曲线⽤参数⽅程的形式。
对于曲线的参数⽅程⽽⾔,只有⼀个变量,将参数表⽰代⼊隐式⽅程即可获得⼀个变量的⽅程。
occt中相关代码分析可参考:Intersection between 2d conic in OpenCASCADE
3.2 ⼆次曲线与⼆次曲⾯求交
⼆次曲线与⼆次曲⾯的求交计算,可以把⼆次曲线的参数形式代⼊⼆次曲⾯的隐式⽅程,得到关于参数的4次⽅程。
然后⽤4次⽅程的求要公式计算出交点。
occt中相关代码分析可参考:对应的类是IntAna_IntConicQuad
解析⼏何求交之直线与⼆次曲⾯
解析⼏何求交之圆与⼆次曲⾯
3.3 ⼆次曲⾯与⼆次曲⾯求交
⼆次曲⾯与⼆次曲⾯的求交计算,也可以把⼆次曲⾯的参数形式代⼊⼆次曲⾯的隐式⽅程。
对应的类是IntAna_QuadQuad,其中对圆柱与⼆次曲⾯的求交计算源码注释如下图所
⽰:
3.4 ⼆次曲⾯与⼆次曲⾯求交⼏何⽅法
⼏何⽅法求交是利⽤⼏何的⽅法,对参与求交的曲⾯的形状、位置以及⽅向等⼏何特点进⾏计算和判断,识别出交线的形状和类型,从⽽精确求出交线。
对于⼀些交线退化或相切的情况,⽤⼏何⽅法可以更加迅速和可靠。
在occt中对应的类是IntAna_IntConicQuad。
关于源码分析可以参考:
OpenCASCADE 平⾯与球⾯求交
OpenCASCADE 平⾯求交
4. Conclusion
综上所述,通过⼆次多项式的形式把⼆次曲线和⼆次曲⾯之间的求交问题统⼀成对将参数⽅程代⼊隐式⽅程得到问题的求解。
提供⼆次曲⾯⼏何求交算法,可以更快地得到结果。
其实对于不包含B样条曲线曲⾯的模型(如CSG模型)来说,IntAna2d和IntAna已经可以实现求交,所以对于这些模型求交计算很快。
这也解决了我以前的⼀个疑问:为什么没有解析的三维圆锥曲线与曲线求交算法?因为三维圆锥曲线本⾝就是两个⼆次曲⾯的交线。
没有像⼆维圆锥曲线和⼆次曲⾯那样有隐式⽅程。
5. References
5.1 同济⼤学数学教研室. ⾼等数学. 第四版⾼等教育出版社
5.2 同济⼤学应⽤数学系. 线性代数. 第四版⾼等教育出版社
5.3 潘祖梁, 陈仲慈. ⼯程技术中的偏微分⽅程. 浙江⼤学出版社
5.4 丘维声. 解析⼏何. 北京⼤学出版社
5.5 孙家⼴, 胡事民. 计算机图形学基础教程. 清华⼤学出版社。