点的旋转变换

发布时间:2024年01月13日

情形一(active or alibi transformation主动变换)

在这里插入图片描述
在坐标系 x ? y x-y x?y中,点 p 1 p_1 p1?逆时针旋转 α \alpha α后到达点 p 2 p_2 p2?
p 1 p_1 p1? x ? y x-y x?y中的表示与 p 2 p_2 p2? x ′ ? y ′ x'-y' x?y中的表示一样, x ′ ? y ′ x'-y' x?y x ? y x-y x?y旋转逆时针旋转 α \alpha α后的新坐标系。
我们要求 p 2 p_2 p2? x ? y x-y x?y中的表示?

(以下讨论均在 x ? y x-y x?y中)
p 1 x = r c o s θ , p 1 y = r s i n θ p_1^x = rcos\theta, p_1^y = rsin\theta p1x?=rcosθ,p1y?=rsinθ
p 2 x = r c o s ( θ + α ) , p 2 y = r s i n ( θ + α ) p_2^x = rcos(\theta+\alpha), p_2^y = rsin(\theta+\alpha) p2x?=rcos(θ+α),p2y?=rsin(θ+α)
可以推出
p 2 x = p 1 x c o s α ? p 1 y s i n α p_2^x = p_1^x cos\alpha - p_1^y sin\alpha p2x?=p1x?cosα?p1y?sinα
p 2 y = p 1 x s i n α + p 1 y c o s α p_2^y = p_1^x sin\alpha + p_1^y cos\alpha p2y?=p1x?sinα+p1y?cosα
用矩阵表示
A = [ c o s α ? s i n α s i n α c o s α ] A = \begin{bmatrix} cos\alpha & -sin\alpha \\ sin\alpha & cos\alpha \end{bmatrix} A=[cosαsinα??sinαcosα?]
p 1 = [ p 1 x , p 1 y ] p_1 = [p_1^x, p_1^y] p1?=[p1x?,p1y?]
p 2 = [ p 2 x , p 2 y ] p_2 = [p_2^x, p_2^y] p2?=[p2x?,p2y?]
p 2 = A p 1 p_2 = Ap_1 p2?=Ap1?

那么,假如我们已知 p 2 p_2 p2?,我们要求 p 1 p_1 p1? x ? y x-y x?y中的表示?
p 1 = A ? 1 p 2 p_1 = A^{-1} p_2 p1?=A?1p2?
A = [ c o s α s i n α ? s i n α c o s α ] A = \begin{bmatrix} cos\alpha & sin\alpha \\ -sin\alpha & cos\alpha \end{bmatrix} A=[cosα?sinα?sinαcosα?]

情形二(passive or alias transformation被动变换)

https://en.wikipedia.org/wiki/Rotation_of_axes_in_two_dimensions
坐标不动,坐标系旋转
p p p不动, x ′ ? y ′ x'-y' x?y x ? y x-y x?y旋转逆时针旋转 α \alpha α后的新坐标系。
我们已知 p p p x ? y x-y x?y中的表示 [ p x , p y ] [p^x,p^y] [px,py],要求 p p p x ′ ? y ′ x'-y' x?y中的表示 [ p x ′ , p y ′ ] [p^{x'},p^{y'}] [px,py]

p x = r c o s θ , p y = r s i n θ p^x = rcos\theta, p^y = rsin\theta px=rcosθ,py=rsinθ
p x ′ = r c o s ( θ ? α ) , p y ′ = r s i n ( θ ? α ) p^{x'} = rcos(\theta - \alpha), p^{y'} = rsin(\theta - \alpha) px=rcos(θ?α),py=rsin(θ?α)
可以推出
p x ′ = p x c o s α + p y s i n α p^{x'} = p^x cos\alpha + p^y sin\alpha px=pxcosα+pysinα
p y ′ = ? p x s i n α + p y c o s α p^{y'} = -p^x sin\alpha + p^y cos\alpha py=?pxsinα+pycosα
用矩阵表示
A = [ c o s α s i n α ? s i n α c o s α ] A = \begin{bmatrix} cos\alpha & sin\alpha \\ -sin\alpha & cos\alpha \end{bmatrix} A=[cosα?sinα?sinαcosα?]
[ p x ′ , p y ′ ] T = A [ p x , p 1 y ] T [p^{x'}, p^{y'}]^T = A [p^x, p_1^y]^T [px,py]T=A[px,p1y?]T

那么,假如我们已知 p p p x ′ ? y ′ x'-y' x?y中的表示 [ p x ′ , p y ′ ] [p^{x'}, p^{y'}] [px,py],要求 p p p x ? y x-y x?y中的表示 [ p x , p 1 y ] [p^x, p_1^y] [px,p1y?]
[ p x , p 1 y ] T = A ? 1 [ p x ′ , p y ′ ] T [p^x, p_1^y]^T = A^{-1}[p^{x'}, p^{y'}]^T [px,p1y?]T=A?1[px,py]T
A ? 1 = [ c o s α ? s i n α s i n α c o s α ] A^{-1} = \begin{bmatrix} cos\alpha & -sin\alpha \\ sin\alpha & cos\alpha \end{bmatrix} A?1=[cosαsinα??sinαcosα?]

主动变换与被动变换的变换矩阵一样?这说明要想让点 p 1 p_1 p1?变换至 p 2 p_2 p2?可通过主动绕原点旋转点 p 1 p_1 p1?实现,也可以 p 1 p_1 p1?不动但旋转坐标系来实现,两者虽然结果一样,但所处的坐标系不一样。

文章来源:https://blog.csdn.net/qq_37083038/article/details/135566902
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。