• 用矩阵来运算向量与点的平移


    用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,那么就会改变位置,所以可以描述

        向量。

  • 相关阅读:
    POJ 1321 棋盘问题
    算法导论 4.1 最大子数组问题
    矩阵快速幂
    固定定位
    HTML排版
    CSS笔记2
    HDU 1796 How many integers can you find(容斥原理)
    HDU 2147 kiki's game(博弈经典题)
    HDU 1846 Brave Game(巴什博弈超简单题)
    HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/8371642.html
Copyright © 2020-2023  润新知