3D数学基础及图形开发(五)矩阵的线性变换-缩放和投影

线性变换-缩放

缩放

2D的缩放,等比例的缩放,和不等比例的缩放。我们的缩放由于不改变旋转,我们使用对角矩阵来实现。


Image Scale.png

3D的缩放矩阵,缩放实现对向量的等比例缩放:

Paste_Image.png

  在我们的程序实现中,我们可以将一个向量作为参数,向量的x,y,z就分别对应着不同轴的缩放系数(一般不会有会沿着任意轴的缩放的需求)

编程实现:
  • 头文件:
Paste_Image.png
  • 源文件:
Paste_Image.png
投影

投影分为两种:正交投影和透视投影(对应着Unity中Camera的两种Type),投影的本质其实就是把二维变为一维或者把三维变为二维的过程。

  • 正交投影:投影线都为平行的直线(看到的图像大小不变)
Paste_Image.png
  • 透视投影:投影线根据视点远端的变小,近端的变大。
Paste_Image.png

2D投影:乘上这个矩阵后直接会转化为一维。

Paste_Image.png

3D投影:乘上这个矩阵后会转化为二维。(如果要进行3D的投影,我们则需要选择它将投影到哪一个平面上类似x轴和y轴组成的平面这是z轴就为0(也就是需要得到这个平面的法向量n

1.png

  3D投影,投影到任意一个平面的公式,基于这个公式进行编程。

Paste_Image.png
  • 投影的编程实现(投影到任意一平面首先需要获取法向量n):(可以看出投影为一组正交矩阵)

    • 头文件:
Paste_Image.png
  • 源文件
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容