x = [ x y ] \boldsymbol{x} =\begin{bmatrix}x\\y\end{bmatrix} x=[xy]
[
x
′
y
′
]
=
[
x
y
]
+
[
a
b
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}x\\y\end{bmatrix} + \begin{bmatrix}a\\b\end{bmatrix}
[x′y′]=[xy]+[ab]
将向量
[
a
b
]
\begin{bmatrix}a\\b\end{bmatrix}
[ab]加到
[
x
y
]
\begin{bmatrix}x\\y\end{bmatrix}
[xy]上,得到平移后的新向量
[
x
′
y
′
]
=
[
x
+
a
y
+
b
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}x+a\\y+b\end{bmatrix}
[x′y′]=[x+ay+b]。其中
a
a
a和
b
b
b分别为x方向和y方向的平移量。
[
x
′
y
′
]
=
[
s
x
0
0
s
y
]
[
x
y
]
=
[
s
x
x
s
y
y
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}s_x & 0\\0 & s_y\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix} = \begin{bmatrix}s_xx\\s_yy\end{bmatrix}
[x′y′]=[sx00sy][xy]=[sxxsyy]
通过缩放矩阵
[
s
x
0
0
s
y
]
\begin{bmatrix}s_x & 0\\0 & s_y\end{bmatrix}
[sx00sy]乘以
[
x
y
]
\begin{bmatrix}x\\y\end{bmatrix}
[xy],可以得到缩放后的向量
[
x
′
y
′
]
=
[
s
x
x
s
y
y
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}s_xx\\s_yy\end{bmatrix}
[x′y′]=[sxxsyy]。其中
s
x
s_x
sx和
s
y
s_y
sy分别为x方向和y方向的缩放比例。
[
x
′
y
′
]
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
[
x
y
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}\cos\theta & -\sin\theta\\\sin\theta & \cos\theta\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}
[x′y′]=[cosθsinθ−sinθcosθ][xy]
通过旋转矩阵
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
\begin{bmatrix}\cos\theta & -\sin\theta\\\sin\theta & \cos\theta\end{bmatrix}
[cosθsinθ−sinθcosθ]乘以
[
x
y
]
\begin{bmatrix}x\\y\end{bmatrix}
[xy],可以得到绕原点逆时针旋转
θ
\theta
θ角度后的向量
[
x
′
y
′
]
\begin{bmatrix}x'\\y'\end{bmatrix}
[x′y′]。
[
x
′
y
′
]
=
[
a
b
c
d
]
[
x
y
]
=
[
a
x
+
b
y
c
x
+
d
y
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}a & b\\c & d\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix} = \begin{bmatrix}ax+by\\cx+dy\end{bmatrix}
[x′y′]=[acbd][xy]=[ax+bycx+dy]
通过一个2x2变换矩阵
[
a
b
c
d
]
\begin{bmatrix}a & b\\c & d\end{bmatrix}
[acbd]乘以
[
x
y
]
\begin{bmatrix}x\\y\end{bmatrix}
[xy],可以得到一个新的变换后向量
[
x
′
y
′
]
=
[
a
x
+
b
y
c
x
+
d
y
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}ax+by\\cx+dy\end{bmatrix}
[x′y′]=[ax+bycx+dy],这个变换矩阵可以表示缩放、旋转、错切等线性变换的组合。
变换矩阵:
[
a
b
c
d
e
f
0
0
1
]
\begin{bmatrix}a & b & c\\d & e & f\\0 & 0 & 1\end{bmatrix}
⎣⎡ad0be0cf1⎦⎤
变换结果
[
x
′
y
′
1
]
=
[
a
b
c
d
e
f
0
0
1
]
[
x
y
1
]
=
[
a
x
+
b
y
+
c
d
x
+
e
y
+
f
1
]
\begin{bmatrix}x'\\y'\\1\end{bmatrix} = \begin{bmatrix}a & b & c\\d & e & f\\0 & 0 & 1\end{bmatrix}\begin{bmatrix}x\\y\\1\end{bmatrix}=\begin{bmatrix}ax+by+c\\dx+ey+f\\1\end{bmatrix}
⎣⎡x′y′1⎦⎤=⎣⎡ad0be0cf1⎦⎤⎣⎡xy1⎦⎤=⎣⎡ax+by+cdx+ey+f1⎦⎤
该变换矩阵包含了三个部分:
引入一个三维投影空间,由
x
x
x、
y
y
y和
w
w
w三个坐标构成,用
[
x
y
w
]
\begin{bmatrix}x\\y\\w\end{bmatrix}
⎣⎡xyw⎦⎤表示。
其中
w
=
0
w=0
w=0表示无穷远的点,即所有投影线的汇聚点所在位置。
[ x ′ y ′ w ′ ] = [ a b c d e f g h i ] [ x y w ] \begin{bmatrix}x'\\y'\\w'\end{bmatrix} = \begin{bmatrix}a&b&c\\d&e&f\\g&h&i\end{bmatrix}\begin{bmatrix}x\\y\\w\end{bmatrix} ⎣⎡x′y′w′⎦⎤=⎣⎡adgbehcfi⎦⎤⎣⎡xyw⎦⎤
这种投影空间和投影变换在计算机图形学中被广泛使用,用于将三维物体投影到二维平面上进行显示。
l = ( a , b , c ) x ⋅ l = a x + b y + c = 0 l = (a, b, c)\\x\cdot l = ax + by + c = 0 l=(a,b,c)x⋅l=ax+by+c=0其中 ( a , b , c ) (a, b, c) (a,b,c)是直线的系数,任意一点 ( x , y ) (x, y) (x,y)代入方程,结果为0,则该点位于该直线上。
l = ( n x , n y , d ) = ( n ⃗ , d ) with ∥ n ⃗ ∥ = 1 l = (n_x, n_y, d) = (\vec{n}, d) \quad \text{with} \ \|\vec{n}\| = 1 l=(nx,ny,d)=(n,d)with ∥n∥=1其中 n ⃗ = ( n x , n y ) = ( cos θ , sin θ ) \vec{n} = (n_x, n_y) = (\cos\theta, \sin\theta) n=(nx,ny)=(cosθ,sinθ)表示直线的法向量,即垂直于直线方向的单位向量, d d d表示直线到原点的有符号距离。
这种表示直观地描述了直线的性质:
法向量和原点距离表示对于直线的各种几何运算都很有用,例如求直线交点、判断点和直线的位置关系等。通过矩阵变换,可以很自然地对直线进行旋转、平移等操作。
这种利用直线的齐次坐标表示求交点的方法,可以自然地推广到三维空间,求两条三维直线或平面的交点。同理,在三维情况下,交点坐标为两个直线或平面的齐次坐标外积。
在这种表示下,两条直线的齐次坐标分别为 ( A , B , C ) (A, B, C) (A,B,C)和 ( A , B , D ) (A, B, D) (A,B,D)。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务