zoukankan      html  css  js  c++  java
  • 用矩阵来运算向量与点的平移

    用4*4的矩阵来描述向量与点:

      1.为什么要用4*4的矩阵,而不是3*3的矩阵呢?

        因为在3D世界中,描述一个点至少需要3个维度,如果使用3个维度来描述向量或者点,

        那么点与向量就没法区别对待,但是点平移与向量平移是不同的,点平移要改变,向量

        平移不变,所以,需要扩展为4*4的。

      2.如果使用4*4的矩阵来描述一个点 or向量:

        点A = [x,y,z,w],向量B = [a,b,c,w]

        由以前的篇幅可知,一个矩阵乘以单位矩阵结果不变,那么我们用单位矩阵C来乘以 A /B.

        [x,y,z,w] *[1,0,0,0 ]   x*1+y*0+z*0+w*0 =x

              0,1,0,0    x*0+y*1+z*0+w*0 =y

              0,0,1,0    x*0+y*0+z*1+w*0 =z

              0,0,0,1    x*0+y*0+z*0+w*1 =w

        同时,将点A移动一段距离,假设移动向量N = [α,β,γ,δ],根据以前知识可知,结果为两个向量

        相加,A+N =[x+α,y+β,z+γ,w+1]

        那么乘以这样的向量N'

         [x,y,z,w] *[1,0,0,0 ]   x*1+y*0+z*0+w*α =x+w*α

              0,1,0,0    x*0+y*1+z*0+w*β =y+w*β

              0,0,1,0    x*0+y*0+z*1+w*γ =z+w*γ

              α,β,γ,1    x*0+y*0+z*0+w*1 =w

        从此次可知,只要w =0,那么位移一段距离也不会改变A,如果w =1,那么就会改变位置,所以可以描述

        向量。

  • 相关阅读:
    pandas 和 matplotlib 的设置
    Django图(菜鸟教程)
    使用 pyperclip 实现复制粘贴
    Pycharm 使用 doctest 进行判断程序是否运行正常
    jieba 运行结果不显示 Building prefix dict from the default dictionary ...
    浮点数以 .0 结尾如何转换为整数
    IOS时间转时间戳出现Invalid Date的问题
    PHP小技巧
    CSS小技巧
    树状数组
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/8371642.html
Copyright © 2011-2022 走看看