消失的自由度

平面二次曲线

平面的二次曲线的一般方程为:
ax^2 + bxy + cy^2 + 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个已知的点组成以下的方程:
\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 = (x_1, x_2, x_3),那么可以得到
ax_1^2 + bx_1x_2 + cx_2^2 + dx_1x_3 + ex_2x_3 + fx_3^2 = 0
显然,无论怎么表示,二次曲线都有5个自由度。

平面上的圆

我们知道,二维平面上的圆的表示为
(x - a)^2 + (y - b)^2 = r^2
如果点用homogeneous表示,那么圆的方程变为
(x_1 - ax_3)^2 + (x_2 - bx_3)^2 = r^2 x_3^2
也就是说,无论怎么样,2D平面上的圆只有三个自由度。

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

有用hemogeneous方式表达的两个点:
\begin{aligned} p_1 &= (1, i, 0, 0, 0) \\ p_2 &= (1, -i, 0, 0, 0) \end{aligned}
可以带入上面圆的homogeneous表示可以验证,这两个点都在圆上面。

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容