平面二次曲线
平面的二次曲线的一般方程为:
ax2+bxy+cy2+dx+ey+f=0
这里面每个点(x,y)都是普通的2D坐标表示。
二次曲线有6个变量a,b,c,d,e,f,但是只有5个自由度a:b:c:d:e:f,也就是只有5个比例是自由的。换句话说a,b,c,d,e,f都乘以一个系数是不影响等式的,这个缩放系数减少了一个自由度。
我们可以用5个已知的点组成以下的方程:
⎣⎡x12x22x32x42x52x1y1x2y2x3y3x4y4x5y5y12y22y32y42y52x1x2x3x4x5y1y2y3y4y511111⎦⎤⎣⎡abcdef⎦⎤=0
然后求解系数矩阵的null vector就可以得到对应的解。
二次曲线的homogeneous表示
homogeneous表示我们参考文章图形图像中的数学-Homogeneous表示
如果我们把点使用homogeneous表示为p=(x1,x2,x3),那么可以得到
ax12+bx1x2+cx22+dx1x3+ex2x3+fx32=0
显然,无论怎么表示,二次曲线都有5个自由度。
平面上的圆
我们知道,二维平面上的圆的表示为
(x−a)2+(y−b)2=r2
如果点用homogeneous表示,那么圆的方程变为
(x1−ax3)2+(x2−bx3)2=r2x32
也就是说,无论怎么样,2D平面上的圆只有三个自由度。
那么问题来了,二次曲线有5个自由度,但是圆只有3个自由度。消失的两个自由度在什么地方?
有用hemogeneous方式表达的两个点:
p1p2=(1,i,0,0,0)=(1,−i,0,0,0)
可以带入上面圆的homogeneous表示可以验证,这两个点都在圆上面。
所以,虽然二次曲线有5个自由度,但是圆作为一种特殊的二次曲线,一定会经过上面两个点,也就是说,上面两个点把5个自由度减少了两个,导致圆只有3个自由度。
同时,我们还知道,平面上所有的圆都相交于这两个无穷远点。
更多文章发表在公众号“探知轩”,欢迎关注。
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情