二維與三維座標變換

2022-09-08 23:12:45 字數 4215 閱讀 5004

\[ \left [\begin

x^` \\

y^` \\

1\end\right ]=

\left [\begin

x+t_x \\

y+t_y \\

1\end\right ]=

\left [\begin

1 & 0 & t_x \\

0 & 1 & t_y \\

0 & 0 &1

\end\right ]

\left [\begin

x \\

y \\

1\end\right ]

\]\[ \left [\begin

x^` \\

y^` \\

1\end\right ]=

\left [\begin

xs_x \\

ys_y \\

1\end\right ]=

\left [\begin

s_x & 0 & 0 \\

0 & s_y & 0 \\

0 & 0 & 1

\end\right ]

\left [\begin

x \\

y \\

1\end\right ]

\]\[ \left [\begin

x^` \\

y^` \\

1\end\right ]=

\left [\begin

xcos\beta-ysin\beta \\

xsin\beta+ycos\beta \\

1\end\right ]=

\left [\begin

cos\beta & -sin\beta &0 \\

sin\beta & cos\beta & 0 \\

0 & 0 & 1

\end\right ]

\left [\begin

x \\

y \\

1\end\right ]

\]\[ t=

\left [ \begin

a & b & c & l \\

d & e & f & m \\

g & h & i & n \\

p & q & r & s

\end \right]

\]其中:

\[ t_1=

\left[\begin

a & b & c \\

d & e & f \\

g & h & i

\end\right]

\]\[ t=

\left [ \begin

s_x & 0 & 0 & 0 \\

0 & s_y & 0 & 0 \\

0 & 0 & s_z & 0 \\

0 & 0 & 0 & 1

\end \right]

\]\[r_(\beta ,\alpha ,\gamma)=r_x(\beta )r_y(\alpha )r_z(\gamma)

\]

繞x軸旋轉變換

\[ t=

\left [ \begin

1 & 0 & 0 & 0 \\

0 & cos\beta & -sin\beta & 0 \\

0 & sin\beta & cos\beta & 0 \\

0 & 0 & 0 & 1

\end \right]

\]

繞y軸旋轉變換

\[ t=

\left [ \begin

cos\alpha & 0 & sin\alpha & 0 \\

0 & 1 & 0 & 0 \\

-sin\alpha & 0 & cos\alpha & 0 \\

0 & 0 & 0 & 1

\end \right]

\]

繞z軸旋轉變換

\[ t=

\left [ \begin

cos\gamma & -sin\gamma & 0 & 0 \\

sin\gamma & cos\gamma & 0 & 0 \\

0 & 0 & 1 & 0 \\

0 & 0 & 0 & 1

\end \right]

\]\[\]

關於x軸的反射

\[ t=

\left [ \begin

1 & 0 & 0 & 0 \\

0 & -1 & 0 & 0 \\

0 & 0 & -1 & 0 \\

0 & 0 & 0 & 1

\end \right]

\]

關於y軸的反射

\[ t=

\left [ \begin

-1 & 0 & 0 & 0 \\

0 & 1 & 0 & 0 \\

0 & 0 & -1 & 0 \\

0 & 0 & 0 & 1

\end \right]

\]

關於z軸的反射

\[ t=

\left [ \begin

-1 & 0 & 0 & 0 \\

0 & -1 & 0 & 0 \\

0 & 0 & 1 & 0 \\

0 & 0 & 0 & 1

\end \right]

\]\[\]

沿x方向錯切

\[ t=

\left [ \begin

1 & b & c & 0 \\

0 & 1 & 0 & 0 \\

0 & 0 & 1 & 0 \\

0 & 0 & 0 & 1

\end \right]

\]

沿y方向錯切

\[ t=

\left [ \begin

1 & 0 & 0 & 0 \\

d & 1 & f & 0 \\

0 & 0 & 1 & 0 \\

0 & 0 & 0 & 1

\end \right]

\]

沿z方向錯切

\[ t=

\left [ \begin

1 & 0 & 0 & 0 \\

0 & 1 & 0 & 0 \\

g & h & 1 & 0 \\

0 & 0 & 0 & 1

\end \right]

\]\[ t_2=

\left[\begin

l \\

m \\

n\end\right]

\]\[ t=

\left [ \begin

1 & 0 & 0 & t_x\\

0 & 1 & 0 & t_y \\

0 & 0 & 1 & t_z \\

0 & 0 & 0 & 1

\end \right]

\]\[ t_3=

\left[\begin

p & q & r

\end\right]

\]\[先旋轉r,再平移t

\]\[\left[\begin

x^, \\

y^, \\

z^, \\

1\end\right]

=tr\left[\begin

x \\

y \\

z \\

1\end\right]

\]\[先平移t,再旋轉r

\]\[\left[\begin

x^, \\

y^, \\

z^, \\

1\end\right]

=rt\left[\begin

x \\

y \\

z \\

1\end\right]

\]\[t=\left[\begin

a & b & c & t_x \\

d & e & f & t_y \\

g & h & i & t_z \\

0 & 0 & 0 & 1

\end\right]

\]\[t(c)r(\alpha )t(-c)

\]

三維座標轉換為二維座標

最近做專案用到三維座標轉換為二維平面座標的轉換公式。看了網上的很多資料,都不太適用自己的專案。最後決定自己來推導。如下圖所示,將二維平面上的三維座標系o x y z 轉換為二維座標系o xy。利用推導出的公式,在二維平面上繪製出三維立體圖。假設在三維座標系中有一點a x y z 轉換為二維座標系中的...

OpenGL 三維到二維,座標系統

現實中的三維物體要畫到紙上,二維平面畫圖,就是點和線,三維是點線面,需要把三維的每個位置的空間座標 x,y,z 對映到二維平面座標 x,y 這可以通過線性代數知識解決。opengl通過各種變換實現,都是矩陣運算實現的 幾種變換簡介 參見opengl超級寶典第5章 變換用途 檢視指定觀察點的位置 模型...

二維,三維座標旋轉演算法 公式)

本文是有關二維,三維座標旋轉演算法筆記。二維座標旋轉。二維座標旋轉公式圖下 void rotate2 double x1,double y1,double alpha,double x2,double y2 x2 x1 cos alpha y1 sin alpha y2 x1 sin alpha y...