3d数学之向量详解

  • Post author:
  • Post category:其他




向量的定义:

既有大小又有方向的量称之为向量,与之相对应的是标量,标量是只有大小没有方向的量。

一个向量的一般在头上添加一个箭头表示,比如向量V,可以表示为



V ⃗ \vec{V}














V



















游戏中一般以二维向量跟三维向量居多,例如一个由A点指向B点的向量,可以表示为



A B ⃗ \vec{AB}














A


B




















,由于向量是有方向的,因此向量



A B ⃗ \vec{AB}














A


B




















与向量



B A ⃗ \vec{BA}














B


A




















并不等价

二维向量的表示为



V = ( V x , V y ) V=(V_x, V_y)






V




=








(



V










x


















,





V










y


















)





,如A = (2, 3), B=(-1, -4)

三维向量可以表示为



V = ( V x , V y , V z ) V=(V_x, V_y,V_z)






V




=








(



V










x


















,





V










y


















,





V










z


















)





,如A = (2, 3, 4), B = (-1, -4, 6)


需要特别注意的是两个特殊的向量:零向量跟单位向量

长度为0的向量称之为零向量,零向量与所有向量平行

模为1的向量称之为单位向量,单位向量并不是唯一的,每个向量单位化以后都是单位向量



向量的几何意义

我们都知道,位置是相对的。因此坐标轴就很重要,在游戏中,向量结合坐标轴来确定位置。

就以Unity来说,如果假设Unity的坐标轴的原点表示为O(0,0),那么一个物体的坐标点为A(3,3),实际上可以看作一条从原点O指向点A的向量,可以表示为



A O ⃗ ( 3 , 3 ) \vec{AO}(3, 3)














A


O

















(


3


,




3


)






向量的计算



1. 向量的数乘

向量的数乘表示向量跟一个实数相乘的乘积,结果还是一个向量。 比如实数a跟一个向量



V = ( V x , V y ) V=(V_x, V_y)






V




=








(



V










x


















,





V










y


















)





相乘,结果为



a V = ( a V x , a V y ) aV=(aV_x, aV_y)






a


V




=








(


a



V










x


















,




a



V










y


















)




  • 数乘的几何意义

    我们都知道,向量是有方向跟大小的,而数乘就最直观的表现就是更改向量的方向跟模的大小。

    当 a > 0时,向量V的方向不变,模变为原来的a倍

    当 a = 0时,向量变为零向量,模等于0

    当 a < 0时,向量方向变为原来相反的方向,模变为原来的|a|倍

在Unity的坐标轴中,如果一个物体的位置为A(3, 3,3),如果我们将其位置乘以2再赋值给这个物体,那么A的位置就会变成A’(6,6,6)。也就是说,我们将这个物体的位置从A点移动到



版权声明:本文为chenyunxiong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。