二维坐标系下的坐标旋转平移

本文详细解析了如何通过平移向量和旋转角度将点P从一个坐标系转换到另一个坐标系的过程,包括从O’Xθ’Yθ’坐标系转换到O’X’Y’坐标系,以及最终转换到OXY坐标系的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

已知:平移向量OO’ =(a,b) ,PO’Xθ’Yθ坐标系下的坐标为(x1,y1), O’Xθ’Yθ坐标系和O’X’Y’坐标系的旋转角度为θ

PO’X’Y坐标系(x1’,y1)和OXY坐标系下的坐标(x,y)

 

 

### 二维坐标系下的旋转变换平移变换 #### 平移变换原理 在二维空间中,如果要移动一个点 \((x, y)\),可以通过向其位置矢量加上一个位移矢量来完成这一操作。假设需要将该点沿 \(X\) 轴方向移动 \(dx\) 单位长度,沿 \(Y\) 轴方向移动 \(dy\) 单位长度,则新的坐标可通过如下公式获得: \[ (x', y') = (x + dx, y + dy) \] 为了简化这种运算,在实际应用中通常会采用齐次坐标表示法,即将原始的二维坐标扩展到三维形式 \((x, y, 1)\)[^2]。 此时,平移操作可以用矩阵乘法表达为: ```python import numpy as np def translate_matrix(dx, dy): return np.array([[1, 0, dx], [0, 1, dy], [0, 0, 1]]) ``` #### 旋转变换原理 对于绕着原点发生的顺时针角度为 \(\theta\) 的旋转,任意一点的新坐标可由下面的关系得出: \[ \begin{pmatrix} x' \\ y' \end{pmatrix} = \begin{pmatrix} cos(\theta) & sin(\theta)\\ -sin(\theta) & cos(\theta) \end{pmatrix} \cdot \begin{pmatrix} x \\ y \end{pmatrix} \] 当涉及到围绕某个特定点而非原点进行旋转时,先执行一次平移使得目标点成为新坐标系统的原点;接着实施上述标准旋转过程;最后再次反向平移回原来的位置[^3]。 具体来说就是三个连续的操作组合而成——先是正向平移到临时原点处,再做旋转处理,最终逆向平移恢复初始状态。这整个流程也可以用单个复合变换矩阵来描述: ```python def rotation_matrix(theta_degrees, cx=0, cy=0): theta_radians = np.radians(theta_degrees) # 构建平移至旋转中心的矩阵 T1 和返回原来的平移矩阵 T2 T1 = translate_matrix(-cx, -cy) T2 = translate_matrix(cx, cy) R = np.array([ [np.cos(theta_radians), -np.sin(theta_radians), 0], [np.sin(theta_radians), np.cos(theta_radians), 0], [0 , 0, 1]]) # 组合这三个变换得到总的变换矩阵 M M = T2 @ R @ T1 return M ``` 通过这种方式可以在不改变物体本身结构的情况下对其姿态做出调整,这对于计算机图形学等领域有着重要意义。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值