圆的平移
“同学们,今天我们要学习的是圆的平移。不过在开始之前,我想问大家一个问题:平移能用矩阵表示吗?”
“今天是我来到呼噜星球的第56天。当我问起这个问题时,教室里的呼噜学生们面面相觑,有的摇头,有的皱眉。我能感受到他们内心的疑惑——“地球老师又在讲些奇怪的东西了。“
问题提出
“同学们,请看这个简单的问题:”
圆的方程是 x2+y2=1,如果我们将其沿x轴平移2个单位,y轴平移3个单位,新的圆的方程应该是什么样的?
学生们七嘴八舌地回答: “应该是 (x−2)2+(y−3)2=1 吧?” “没错!中心点从 (0,0) 移动到了 (2,3)!”
“非常好!“我微笑着说,“那么我的问题是:这个过程能用矩阵来表示吗?”
思考点:平移能用矩阵表示吗?如果是,应该如何构造这个矩阵?
“我们之前学过线性变换,比如旋转、缩放、剪切,它们都可以用2×2矩阵来表示。但是平移呢?”
我拿起粉笔,在黑板上写下了一个简单的平移:
(x′y′)=(xy)+(23)
“这个表达式不是矩阵乘法,而是向量加法。标准的线性变换形式应该是 x′=Ax,这里却有额外的偏移项。”
一个学生举手提问:“老师,那平移不是线性变换吗?”
让我验证一下。线性变换需要满足两个性质:
- T(u+v)=T(u)+T(v)
- T(cu)=cT(u)
对于平移 T(x,y)=(x+2,y+3):
T((0,0))=(2,3) T(2(0,0))=T(0,0)=(2,3) 但 2T(0,0)=2(2,3)=(4,6)
显然 T(2(0,0))=2T(0,0),所以平移不满足线性变换的性质。
“同学们发现了什么?平移确实不是线性变换!“我兴奋地说,“那我们就不能用2×2矩阵来表示平移了。“
观察与猜想
“但是,“话锋一转,“我们真的完全无法用矩阵表示平移吗?”
我向学生们展示了一个巧妙的方法:
“让我们把二维坐标 (x,y) 扩展为三维的齐次坐标 [x,y,1]。”
“这时候,平移 (x,y)→(x+2,y+3) 就可以这样表示:”
x′y′1=100010231xy1
学生们惊讶地看着这个表达式。一个学生兴奋地说:“老师,真的可以!这样我们就可以用3×3矩阵来表示平移了!”
数学定义
定义是数学中精确描述概念、术语含义的陈述。理解定义是学习数学的基础,每个数学概念都有其严格的定义。
在计算机图形学中,齐次坐标是用于表示几何变换的扩展坐标系统。二维点 (x,y) 的齐次坐标表示为 [x,y,1],其中第三个分量称为齐次分量。
“现在让我们来验证一下这个矩阵是否正确。”
100010231xy1=1⋅x+0⋅y+2⋅10⋅x+1⋅y+3⋅10⋅x+0⋅y+1⋅1=x+2y+31
“完美!“我拍着手说,“这个3×3矩阵确实实现了平移操作。”
“现在我们回到最初的问题:圆的平移。”
原圆:x2+y2=1 平移后的圆:(x−2)2+(y−3)2=1
让我用齐次坐标来重新表达这个过程:
xy1→100010231xy1=x+2y+31
然后转回普通坐标: x′=x+2⇒x=x′−2 y′=y+3⇒y=y′−3
代入原方程: (x′−2)2+(y′−3)2=1
“同学们,这就是我们想要的结果!”
齐次坐标的优势:
- 可以用矩阵表示平移
- 保持统一的变换矩阵形式
- 便于进行变换的组合
严格证明
现在让我们来严格证明为什么齐次坐标能够表示平移。
数学定义
定义是数学中精确描述概念、术语含义的陈述。理解定义是学习数学的基础,每个数学概念都有其严格的定义。
在二维空间中,齐次坐标的3×3变换矩阵具有形式: ad0be0cf1 其中:
- 前两行前两列实现线性变换(旋转、缩放、剪切)
- 前两行第三列实现平移
- 第三行固定为 [0,0,1]
“让我证明任意平移都可以用3×3矩阵表示。”
设平移向量为 (tx,ty),则平变换可以表示为:
T(x,y)=(x+tx,y+ty)
对应的齐次坐标矩阵为:
M=100010txty1
验证: Mxy1=1⋅x+0⋅y+tx⋅10⋅x+1⋅y+ty⋅10⋅x+0⋅y+1⋅1=x+txy+ty1
“这证明了我们的方法是正确的。”
现在让我们看看如何处理圆的平移。给定一个圆的方程:
(x−h)2+(y−k)2=r2
要将其平移 (tx,ty),我们需要:
- 将圆上点 (x,y) 变换为 (x+tx,y+ty)
- 新圆的中心为 (h+tx,k+ty)
- 新圆的方程为 (x−(h+tx))2+(y−(k+ty))2=r2
“同学们,这个变换过程可以用矩阵完全表示。”
让我们看一个具体的例子:
例题1:将圆 (x−1)2+(y+2)2=4 沿x轴正方向平移3个单位,沿y轴负方向平移1个单位。求新圆的方程。
解答:
原圆:(x−1)2+(y+2)2=4 中心:(1,−2),半径:2
平移向量:(3,−1)
新圆中心:(1+3,−2−1)=(4,−3)
新圆方程:(x−4)2+(y+3)2=4
对应的齐次坐标变换矩阵:
1000103−11
“现在让我们看看平移与旋转的组合。”
变换组合: 当我们需要先旋转再平移时,可以使用矩阵乘法: T⋅R 其中 T 是平移矩阵,R 是旋转矩阵。
例题2:将单位圆 x2+y2=1 先旋转45度,再平移 (2,1)。求最终变换的矩阵。
解答:
旋转45度矩阵: R=cos45°sin45°0−sin45°cos45°0001=22220−22220001
平移 (2,1) 矩阵: T=100010211
组合变换矩阵: T⋅R=10001021122220−22220001
计算矩阵乘法: T⋅R=22220−22220211
“同学们注意到了吗?这个组合矩阵的前两列包含了旋转信息,第三列包含了平移信息。”
现在让我们计算一个点经过这个变换后的结果。取点 (1,0):
先旋转45度: (1,0)→(cos45°,sin45°)=(22,22)
再平移 (2,1): (22,22)→(22+2,22+1)
使用齐次坐标计算:
22220−22220211101=22⋅1+(−22)⋅0+2⋅122⋅1+22⋅0+1⋅10⋅1+0⋅0+1⋅1=22+222+11
“结果完全一致!这说明我们的方法是正确的。”
例题3:求将圆 (x+1)2+(y−2)2=9 进行以下变换后的新圆方程:
- 先缩放2倍
- 再旋转30度
- 最后平移 (3,−2)
解答:
缩放2倍矩阵: S=200020001
旋转30度矩阵: R=cos30°sin30°0−sin30°cos30°0001=23210−21230001
平移 (3,−2) 矩阵: T=1000103−21
组合变换矩阵: M=T⋅R⋅S=1000103−2123210−21230001200020001
先计算 R⋅S: R⋅S=23210−21230001200020001=310−130001
再计算 T⋅(R⋅S): T⋅(R⋅S)=1000103−21310−130001=310−1303−21
原圆中心:(−1,2),半径:3
缩放后半径:3×2=6
变换后新圆中心: 310−1303−21−121=3⋅(−1)+(−1)⋅2+3⋅11⋅(−1)+3⋅2+(−2)⋅10⋅(−1)+0⋅2+1⋅1=−3−2+3−1+23−21=1−3−3+231
所以新圆方程为: (x−(1−3))2+(y−(−3+23))2=36
化简: (x−1+3)2+(y+3−23)2=36
“同学们,通过齐次坐标,我们可以用矩阵表示任意复杂的变换组合!“
结论与应用
今天我们学习了圆的平移,收获如下:
平移不是线性变换,因为不满足线性变换的性质 T(cu)=cT(u)
齐次坐标是解决问题的关键,将二维坐标扩展到三维:(x,y)→[x,y,1]
3×3矩阵可以表示平移: 100010txty1xy1=x+txy+ty1
圆的平移:原圆 (x−h)2+(y−k)2=r2 平移 (tx,ty) 后变为 (x−(h+tx))2+(y−(k+ty))2=r2
变换组合:多个变换可以通过矩阵乘法组合,如先旋转再平移:T⋅R
“同学们,齐次坐标是计算机图形学的基础。在游戏开发、CAD设计、虚拟现实等领域,我们每天都在使用这些概念。”
“今天的作业是:给定圆 (x−2)2+(y+1)2=16,要求:
- 先缩放0.5倍
- 再旋转60度
- 最后平移 (−1,3) 求变换后的新圆方程,并写出完整的变换矩阵组合。”
“我相信通过今天的课程,大家对圆的平移和齐次坐标有了深入的理解!记住,数学不仅是抽象的符号,更是解决实际问题的强大工具!”