消失的自由度

206 阅读2分钟

平面二次曲线

平面的二次曲线的一般方程为:

ax2+bxy+cy2+dx+ey+f=0ax^2 + bxy + cy^2 + dx + ey + f = 0

这里面每个点(x,y)(x, y)都是普通的2D坐标表示。

二次曲线有6个变量a,b,c,d,e,fa, b, c, d, e, f,但是只有5个自由度a:b:c:d:e:fa:b:c:d:e:f,也就是只有5个比例是自由的。换句话说a,b,c,d,e,fa, b, c, d, e, f都乘以一个系数是不影响等式的,这个缩放系数减少了一个自由度。

我们可以用5个已知的点组成以下的方程:

[x12x1y1y12x1y11x22x2y2y22x2y21x32x3y3y32x3y31x42x4y4y42x4y41x52x5y5y52x5y51][abcdef]=0\begin{bmatrix} x_1^2 & x_1y_1 & y_1^2 & x_1 & y_1 & 1 \\ x_2^2 & x_2y_2 & y_2^2 & x_2 & y_2 & 1 \\ x_3^2 & x_3y_3 & y_3^2 & x_3 & y_3 & 1 \\ x_4^2 & x_4y_4 & y_4^2 & x_4 & y_4 & 1 \\ x_5^2 & x_5y_5 & y_5^2 & x_5 & y_5 & 1 \\ \end{bmatrix} \begin{bmatrix}a \\ b \\ c \\ d \\ e \\f \end{bmatrix} = 0

然后求解系数矩阵的null vector就可以得到对应的解。

二次曲线的homogeneous表示

homogeneous表示我们参考文章图形图像中的数学-Homogeneous表示

如果我们把点使用homogeneous表示为p=(x1,x2,x3)p = (x_1, x_2, x_3),那么可以得到

ax12+bx1x2+cx22+dx1x3+ex2x3+fx32=0ax_1^2 + bx_1x_2 + cx_2^2 + dx_1x_3 + ex_2x_3 + fx_3^2 = 0

显然,无论怎么表示,二次曲线都有5个自由度。

平面上的圆

我们知道,二维平面上的圆的表示为

(xa)2+(yb)2=r2(x - a)^2 + (y - b)^2 = r^2

如果点用homogeneous表示,那么圆的方程变为

(x1ax3)2+(x2bx3)2=r2x32(x_1 - ax_3)^2 + (x_2 - bx_3)^2 = r^2 x_3^2

也就是说,无论怎么样,2D平面上的圆只有三个自由度。

那么问题来了,二次曲线有5个自由度,但是圆只有3个自由度。消失的两个自由度在什么地方

有用hemogeneous方式表达的两个点:

p1=(1,i,0,0,0)p2=(1,i,0,0,0)\begin{aligned} p_1 &= (1, i, 0, 0, 0) \\ p_2 &= (1, -i, 0, 0, 0) \end{aligned}

可以带入上面圆的homogeneous表示可以验证,这两个点都在圆上面。

所以,虽然二次曲线有5个自由度,但是圆作为一种特殊的二次曲线,一定会经过上面两个点,也就是说,上面两个点把5个自由度减少了两个,导致圆只有3个自由度。

同时,我们还知道,平面上所有的圆都相交于这两个无穷远点。

更多文章发表在公众号“探知轩”,欢迎关注。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情