学习3D《1、二维坐标系下的平移旋转缩放》

各位看官,俗话说:火车不是推滴,牛皮不是吹滴。没有扎实的基础知识,再高的摩天大楼也是会倒滴,我们还是一步两个脚印吧^_^

话说当年笛卡尔坐标系创世之初,那场面也是惊天地,泣鬼神,以至于让我们这些小虾米下了一十八层地域。

那么我们就先从二维中的平移开始说起:

平移:

假设M是原点为(0,0)的坐标系,N是原点为(2,2)的坐标系,点P(px,py)是M中的一点,那么点P在N中的坐标P‘是多少呢?

p'x = px - 2;p'y = py - 2;换成矩阵看看:

p'x = |px| + |-2|
p'y = |py| + |-2|

换成齐次坐标[不认识?那这位童鞋就去翻翻书了):]就为:

[p'x]   [ 1 0 tx]   [px]
[p'y] = [ 0 1 ty] * [py]
[ 1 ]   [ 0 0  1]   [1 ],对上面来讲:tx=-2,ty=-2;

旋转:

假设M是原点为(0,0)的坐标系,点p(px,py)绕原点逆时针旋转a度到点p',那么点p'是多少呢?

p'x = px*cosa - py*sina
p'y = px*sina + py*cosa

(问:神马是这样滴捏?答:童鞋,多动动小手,画画图吧!)上面也可用下表示:

[p'x]     [-sina]   [px]
[p'y]  =  [cosa ] * [py]

换成齐次坐标就为:

[x']   [cosa -sina 0]   [x]
[y'] = [sina  cosa 0] * [y]
[1 ]   [0     0    1]   [1]

缩放:

假设M是原点为(0,0)的坐标系,点P(px,py)沿x轴缩放sx,沿y轴缩放sy后的坐标p'是多少呢?

p'x = px * sx
p'y = py * sy,也可写成:

[p'x]   [sx 0]   [px]
[p'y] = [0 sy] * [py]

换成齐次坐标就为:

[x']   [sx  0 0]  [x]
[y'] = [0  sy 0] *[y]
[1 ]   [0  0  1]  [1]

如果对上面还不了解的童鞋,可要加紧study难过
如果明白的童鞋可以尝试下二维的复合哦偷笑

<think>好的,我现在需要回答用户的问题:“二维坐标系平移旋转”。首先,我需要明确用户的问题是关于二维坐标系平移旋转变换的基本概念、数学表示以及相关操作。 首先,平移变换。二维坐标系平移是指将整个坐标系沿着x轴和y轴方向移动一定的距离,而不改变坐标轴的方向和单位长度。假设原坐标系为O-xy,平移后的新坐标系为O'-x'y',其中O'在原坐标系中的坐标为(h, k)。那么,原坐标系中的点P(x, y)在新坐标系中的坐标(x', y')满足x = x' + h,y = y' + k,或者反过来,x' = x - h,y' = y - k。这是平移变换的代数表达式。 接下来是旋转变换。旋转变换是指将坐标系绕原点(或某一点)旋转一个角度θ(通常逆时针为正方向)。假设原坐标系O-xy绕原点逆时针旋转θ角后得到新坐标系O-x'y'。原坐标系中的点P(x, y)在新坐标系中的坐标(x', y')可以通过旋转矩阵来表示。旋转矩阵为: \[ \begin{pmatrix} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta \end{pmatrix} \] 因此,坐标变换公式为: \[ \begin{cases} x = x'\cos\theta - y'\sin\theta \\ y = x'\sin\theta + y'\cos\theta \end{cases} \] 或者反过来,用原坐标表示新坐标时,由于旋转矩阵的逆矩阵是其转置(因为旋转矩阵是正交矩阵),所以: \[ \begin{cases} x' = x\cos\theta + y\sin\theta \\ y' = -x\sin\theta + y\cos\theta \end{cases} \] 需要注意的是,平移旋转的组合变换需要考虑顺序。通常,先平移旋转和先旋转平移的结果不同。例如,先平移(h, k)再旋转θ,其变换矩阵需要结合平移向量和旋转矩阵,可能需要使用齐次坐标来统一表示,这样可以将平移旋转合并为一个4×4的变换矩阵(在二维中是3×3),方便计算。 此外,齐次坐标是处理二维几何变换的重要工具,通过引入一个额外的维度(通常设为1),可以将平移旋转缩放等线性变换和仿射变换统一用矩阵乘法表示。例如,平移变换的齐次矩阵为: \[ \begin{pmatrix} 1 & 0 & h \\ 0 & 1 & k \\ 0 & 0 & 1 \end{pmatrix} \] 旋转变换的齐次矩阵为: \[ \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix} \] 组合变换时,矩阵相乘的顺序决定了变换的顺序,例如先平移旋转的组合矩阵是旋转矩阵乘以平移矩阵(因为变换是右乘向量)。 总结来说,二维坐标系平移旋转是基本的坐标变换操作,平移改变原点位置,旋转改变坐标轴的方向,组合变换需要考虑顺序并用齐次坐标处理。 </think>二维坐标系平移旋转是平面几何中两种基本的坐标变换操作,用于描述点或图形在不同坐标系下的位置关系。以下是其核心原理与数学表达: --- ### **一、平移变换** 平移是将整个坐标系沿x轴和y轴方向移动固定距离,不改变坐标轴方向和单位长度。 **定义**:设原坐标系为 \( O-xy \),平移后新坐标系为 \( O'-x'y' \),其中 \( O' \) 在原坐标系中的坐标为 \( (h, k) \)(称为平移向量)。 **坐标转换关系**: - 原坐标系中点 \( P(x, y) \) 在新坐标系中的坐标 \( (x', y') \) 满足: \[ x = x' + h,\quad y = y' + k \] - 反之,新坐标系中的点 \( (x', y') \) 在原坐标系中为: \[ x' = x - h,\quad y' = y - k \] --- ### **二、旋转变换** 旋转是将坐标系绕原点(或某定点)逆时针旋转角度 \( \theta \)(顺时针旋转为 \( -\theta \)),改变坐标轴方向但保持原点不变。 **定义**:原坐标系 \( O-xy \) 绕原点逆时针旋转 \( \theta \) 后得到新坐标系 \( O-x'y' \)。 **坐标转换关系**(基于旋转矩阵): - 原坐标系中点 \( P(x, y) \) 在新坐标系中的坐标 \( (x', y') \) 满足: \[ \begin{cases} x = x'\cos\theta - y'\sin\theta \\ y = x'\sin\theta + y'\cos\theta \end{cases} \] - 反之,新坐标系中的点 \( (x', y') \) 在原坐标系中为: \[ \begin{cases} x' = x\cos\theta + y\sin\theta \\ y' = -x\sin\theta + y\cos\theta \end{cases} \] (旋转矩阵是正交矩阵,其逆矩阵为转置矩阵) --- ### **三、平移旋转的组合变换** 实际应用中常需同时平移旋转,此时需注意变换顺序(先平移旋转 或 先旋转平移结果不同)。 **齐次坐标表示**(统一变换形式): 引入齐次坐标 \( (x, y, 1) \),将平移旋转合并为 \( 3 \times 3 \) 矩阵: - 平移矩阵 \( T(h, k) \): \[ T(h, k) = \begin{pmatrix} 1 & 0 & h \\ 0 & 1 & k \\ 0 & 0 & 1 \end{pmatrix} \] - 旋转矩阵 \( R(\theta) \): \[ R(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix} \] - 组合变换(如先平移旋转): \[ 变换矩阵 = R(\theta) \cdot T(h, k) \] 对点 \( (x, y, 1) \) 的变换为: \[ (x', y', 1) = (x, y, 1) \cdot R(\theta) \cdot T(h, k) \] --- ### **关键总结** - 平移仅改变原点位置,旋转仅改变坐标轴方向; - 组合变换需用齐次坐标统一矩阵运算,且顺序影响结果; - 旋转矩阵的正交性保证了变换的保距性(不改变图形形状和大小)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值