zoukankan      html  css  js  c++  java
  • iOS 三维变换

    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]

  • 相关阅读:
    Eclipse安装反编译插件
    关于eclipse发送到桌面快捷方式后打不开
    字符串 242.有效的字符异位词
    栈 503.下一个更大的元素
    eclipse导入jar包
    Java获取当前的时间
    链表 24.两两交换链表中的节点
    链表 19.删除链表倒数第N个节点
    共享空间的栈
    栈的顺序存储结构
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3215095.html
Copyright © 2011-2022 走看看