news 2026/6/4 1:56:46

games101学习:lecture3. Transformation

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
games101学习:lecture3. Transformation

大纲

这周要学习转换(Transformation),从三维世界到二维投影。

2D转换:rotation(旋转),scale(缩放),shear(切片)
齐次坐标的概念,以及为什么用它
多种不同的变换组合到一块形成一个新的变换
三维的变换

今天学习二维变幻
1.Representing transformations using matrices 使用矩阵表示变幻
2.rotation scale shear 旋转 缩放 切片

缩放:横轴和纵轴都缩放为原来的0.5倍。
1.一开始任何一个点的坐标是(x,y),经过一个缩放操作之后变为(x',y'),那可以理解为/* by 01130.hk - online tools website : 01130.hk/zh/regexsucha.html */ x' = sx/* by 01130.hk - online tools website : 01130.hk/zh/regexsucha.html */ y' = sy
,其中s=0.5
2.上面这两个十字也可以写为矩阵形式,x' = sxy' = sy写为

此时S = 0.5;这个【S 0 0 S】成为缩放矩阵,如果S 大于 1 的话,这个矩阵可以用于放大。

同理,想将图像对x进行缩放,可以进行这个操作。

同理,对称的操作

shear变换,切变。

y轴方向的值不发生改变,y=0的x不发生改变,然后y越大,x改变的越大,因此改变的量是x=ay,加上原本的量是x' = x + ay所以矩阵可以这么写。

写出一个变换,就是要找出变换后的y',x'和变换前的x,y之间的关系,然后乘一个矩阵即可。

旋转,绕着(0,0)旋转,逆时针为正方向。

那我们如何得到这个变换呢?手推公式一下。
我们知道,写出一个变换,就是要找出变换后的y',x'和变换前的x,y之间的关系,然后乘一个矩阵即可。那此时我们可以随机找两个点,就比如原图右下角的点和左上角的点。

右下角的(1,0)会变成( cos(theta) , sin(theta) )那这个就是一个变换前后的关系,可以通过这个关系去推导这个(A,B,C,D)的值。同理,左上角这个点也会满足。这两个特殊的点满足,其余点也会满足的。
最终可以得出A=cos(theta) B=-sin(theta) C=sin(theta) D=cos(theta)。

还是那句话,写出一个变换,就是要找出变换后的y',x'和变换前的x,y之间的关系,然后乘一个矩阵即可。
称之为线性变换

引入新概念,以上的线性变换要用一个相同维度的矩阵来乘向量,那不同纬度呢,引入一个定义叫做齐次坐标,Homogeneous coordinates,理解为什么要引入这个定义?因为我们要进行平移变换

看看这个平移变换,貌似挺简单的,但是很难以矩阵相乘的形式表达出来。

如果表示为这种形式不符合线性变换的定义,可以有一种统一的形式:齐次变换

二维的点可以加个1,二维的向量加个0,增加一个维度。(为什么要将向量和点区别对待呢?)
向量考虑的是方向性,其具有平移不变性。


point + point = 这两个点的中点,

可以实现加法,我想要的平移的变换!可以写成统一的一个矩阵 * 一个向量的形式了。

类似这种平移变换,为他起个名字,叫做affine transformations(仿射变换),线性变换的同时再加个平移。

用齐次坐标表示二维的仿射变换,最后一行永远都是0 0 1,平移一定都是写在最后一列的两个数上。

关于齐次坐标的缩放 旋转 平移的总结

Inverse Transform逆变换,进行一个操作乘的矩阵,然后将这个操作反回来所用的这个矩阵,这个操作是逆变换,这个矩阵是逆矩阵


需要注意的是,矩阵乘法不符合交换律,意思是你先进行平移变换,在进行旋转变换得到的结果肯定是不等于先进性旋转变换再进行平移变换得到的结果。**你想先进行什么操作,就先左乘一个矩阵,如图,(x,y,1)先进行旋转,再进行平移。

对这个矩阵先进行A1变换,再A2,再A3………就是一直左乘。

矩阵没有交换律,但是有结合律那么就可以将这些An …… A2 A1先乘到一块作为一个矩阵最后再和这个(x,y,1)进行相乘。

前面说到的旋转,都是以原点中心进行的旋转,那能不能以任意一个点进行旋转呢?变换不仅能进行合成(上面),还能进行分解。

如何以C为中心旋转,首先平移原图C的位置到原点,然后旋转,然后反转回去。
先左乘一个平移,再旋转,再平移。

二维的讲完了,到了三维。

三维空间也需要线性变换,它也需要旋转,缩放,平移等。

w不等于1,那就把x,y,z全都变成x/w,y/w,z/w的值,然后就变成了一个点。

先平移再线性变换还是先线性变换再平移呢?
先线性变换再平移

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/3 12:47:19

亲测有效!应对Windows 10 Pro停服,我们找到了这几种稳妥的升级路径

2025年10月14日,微软正式停止对 Windows 10 Pro 的技术支持。这意味着该版本将不再获得安全更新和补丁程序,设备将面临更高的网络安全威胁、系统稳定性风险以及合规性挑战。对于仍在使用 Windows 10 Pro 的企业用户,尤其是受限于 TPM 要求而无…

作者头像 李华
网站建设 2026/6/1 7:33:56

高频行情事件队列

高频行情事件队列 一、原问题分析 1.1 原有模数分配算法问题 算法公式: index (next_index_ 1) % handler_ptrs_.size()问题分析: 算法错误:每次分配都先1再取模,导致实际分配的起始索引偏移了1轮转偏移:如果next_in…

作者头像 李华
网站建设 2026/6/3 13:33:23

如何快速掌握CryptPad:安全协作平台的完整指南

如何快速掌握CryptPad:安全协作平台的完整指南 【免费下载链接】cryptpad Collaborative office suite, end-to-end encrypted and open-source. 项目地址: https://gitcode.com/gh_mirrors/cr/cryptpad 在当今数字化协作时代,数据安全和隐私保护…

作者头像 李华
网站建设 2026/6/1 20:19:41

这是一篇啥也不是的博客

这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不是的博客这是一篇啥也不…

作者头像 李华
网站建设 2026/6/2 10:28:08

深度解析 mydetector.ai:可信赖的 AI 内容检测技术平台

在当前 AI 生成内容(AIGC)快速发展的时代,文本自动生成越来越普及。然而,内容质量、安全与原创性检测成为必不可少的环节。尤其是在学术、企业和内容平台中,对 AI 生成内容的识别和判定变得至关重要。本文将以技术视角…

作者头像 李华
网站建设 2026/5/29 23:25:50

500S2R7BS100XT:2.2 pF高精度电容, 现货库存

型号介绍:今天我要向大家介绍的是 KYOCERA AVX 的一款电容器——500S2R7BS100XT。 它拥有低插入损耗和超高自谐振性能,能够在宽带频率范围内保持稳定的性能,是无线通信和商业雷达等应用的理想选择。同时,它的高绝缘电阻和低介质损…

作者头像 李华