美文网首页iOS视觉
十七 图形图像开发中的3D数学

十七 图形图像开发中的3D数学

作者: 王俏 | 来源:发表于2020-08-05 09:02 被阅读0次

    坐标系

    左手坐标系和右手坐标系

    image
    • 世界坐标系:经纬坐标
      原点在本初子午线与赤道的交点

    • 物体坐标系
      和物体的位置的所处的方向相关联,有时也被称作模型坐标系(模型顶点的坐标都是在模型坐标系中描述的)

    • 摄像机坐标系:和观察者相关联
      摄像机在原点,x轴向右,z轴向前,y轴向上

    • 惯性坐标系:为简化世界坐标系到物体坐标系的转换,引入的坐标系

    向量的运算和几何意义 向量的点乘和叉乘

    参照 https://juejin.im/post/6850418118155501582

    矩阵的数学意义

    方阵:行数和列数相同的矩阵
    单位矩阵:是一种特殊的对角矩阵,n维单位矩阵记做 In。是n * n 矩阵。对象元素为1.其他元素为0。

    矩阵转置

    一个r * c 矩阵M。M的转置记做M^T,是一个 c * r 矩阵。它的列由M的行组成。可以从另⽅面理解。 (Mij)^T = Mji ,即沿着矩阵的对角线翻折。
    向量的转置:


    image
    image

    标量与矩阵的乘法计算

    image

    矩阵相乘

    A ✖ B 计算的前提条件是: A的列数 = B的行数

    矩阵相乘法则:对结果中的任意元素Cij,取A的第i行和第j列,将行和列中的对应元素相乘。然后将结果相加 (等于A的i列列和B的j列列的点积),Cij就等于这个和。

    image

    注意:

    • 单位矩阵左乘/右乘矩阵,都等于原矩阵
    • 不满足交换律 AB != BA
    • 满足结合律(前提是矩阵相乘有意义) ABC= A(BC)
    • (kA)B = k(AB) = A(kB)
    • (AB)^T = (BT)(AT)

    向量与矩阵乘法

    ⾏向量左乘矩阵时,结果是⾏向量;
    列向量右乘矩阵时,结果是列向量;
    行向量右乘矩阵时,结果是无意义;
    列向量左乘矩阵时,结果是无意义;

    矩阵与向量相乘 注意事项:
    1.结果向量中的每个元素都是原向量与矩阵中单独行或列的点积; 2.矩阵一向量乘法满足对向量加法的分配律,对于向量v,w 和 矩阵M 有,
    (v + w)M = vM + wM;

    为什么要使用行向量?(偏向于书写⽅便)

    • 1.在文字中使用行向量的形式更更加好书写;
    • 2.用矩阵乘法实现坐标系转换时,向量左乘矩阵的形式更加方便
    • 3.DirectX使用的是行向量

    为什么要使用列向量?

    • 1.等式中使⽤列向量形式更好
    • 2.多本计算机图形学都是使用的列向量
    • 3.OpenGL 使⽤的是列向量

    矩阵的几何意义:

    • 1.⽅阵的行能被解释为坐标系的基向量;
    • 2.为了将向量从原坐标系变换到新坐标系,⽤它乘以一个矩阵。
    • 3.从原坐标系到这些基向量定义的新坐标系的变化是一种线性变换。线性变换保持直线和平行线。但角度、⻓度 面积或体积可能会改变。
    • 4.零向量乘以任何矩阵仍然得到零向量。因此,⽅阵所代表的线性变换的原点和原坐标系原⼀一致。变换不包含原点。
    • 5.可以通过想象变换后的坐标系的基向量来想象矩阵。这些基向量在2D中构成L形。在3D构成“三⻆架”型。⽤一个盒⼦以及辅助更更有助于理解

    2D下的旋转矩阵公式推演

    image image

    3D下的旋转矩阵公式推演

    • 围绕X轴旋转
    image
    • 围绕Y轴旋转
    image
    • 围绕Z轴旋转
    image
    • 围绕n轴旋转
    image

    缩放与平移矩阵公式推演

    • 沿坐标轴2D的缩放矩阵
    image
    • 沿坐标轴3D的缩放矩阵
    image
    • 沿任意方向缩放
    image

    相关文章

      网友评论

        本文标题:十七 图形图像开发中的3D数学

        本文链接:https://www.haomeiwen.com/subject/kbgwrktx.html