博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 三维变换
阅读量:5227 次
发布时间:2019-06-14

本文共 748 字,大约阅读时间需要 2 分钟。

1:平移

一个4*4的单位矩阵乘以一个P(x,y,z,1)的行向量,则表示此矩阵向x轴移动了x的单位,Y轴移动了y个单位,Z轴移动了z个单位,最后获得移动后的目标矩阵是

[ 1, 0, 0, 0 ]

[ 0, 1, 0, 0 ]

[ 0, 0, 1, 0 ]

[ x, y,  z, 1 ]

从中可以看出4*4矩阵N中的N41,N42,N43分别控制其在xyz轴上的平移单位.

2:x轴旋转

同理,我们将一个单位矩阵绕Z轴沿顺时针方向进行旋转A角度.则获得目标矩阵是

[ 1,    0,     0,    0 ]

[ 0, CosA, SinA,  0 ]

[ 0, -SinA, CosA, 0]

[ 0,    0,      0,   1 ]

从中可见N22,N23,N32,N33是控制矩阵围绕X轴旋转角度的

3:y轴正向旋转B获得目标矩阵为

[ CosB, 0, -SinB,  0 ]

[ 0,    1,     0,    0 ]

[ SinB, 0, CosB, 0]

[ 0,    0,      0,   1 ]

从中可见N11,N13,N31,N33是控制矩阵围绕X轴旋转角度的

4:z轴旋转C获得目标矩阵为

[ CosC, SinC, 0 , 0]

[ -SinC, CosC, 0 ,  0 ]

[ 0,    0,     1,    0 ]

[ 0,    0,      0,   1 ]

从中可见N11,N12,N21,N22是控制矩阵围绕Y轴旋转角度的

5:缩放

我们将一单位矩阵沿X轴缩放X,Y轴缩放Y,Z轴缩放Z,则获得目标矩阵如下

[ x, 0, 0, 0 ]

[ 0, y, 0, 0 ]

[ 0, 0, z, 0 ]

[ 0, 0, 0, 1]

 

转载于:https://www.cnblogs.com/dyllove98/p/3215095.html

你可能感兴趣的文章
shell脚本图书
查看>>
UNIX环境高级编程——线程限制
查看>>
UNIX网络编程——原始套接字SOCK_RAW
查看>>
TCP发送源码学习(1)--tcp_sendmsg
查看>>
使用两个不同类型的数据进行加法计算时,使用异常处理语句捕获由于数据类型错误而出现的异常,发生生成错误。是否继续并运行上次的成功生成?...
查看>>
python-三级菜单和购物车程序
查看>>
web开发灵感推荐--34个有吸引力的电影网站设计灵感
查看>>
sql操作
查看>>
条件断点 符号断点
查看>>
第二十三模板 18.3.5 位集合
查看>>
LEFT JOIN条件写在where里是不会多查出数据来的
查看>>
手把手 学习Git
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
pwershell switch 语句
查看>>
学习Spring Boot:(五)使用 devtools热部署
查看>>
三人行有我师?取长补短?影响力?
查看>>
设计模式——设计模式概述
查看>>
封装一个获取module.exports内容的方法
查看>>
动态连接库
查看>>
ServletContext 与application的异同
查看>>