您的位置:首页 > 移动开发 > Unity3D

Unity3d 三维空间,向量,矩阵

2013-02-21 14:47 351 查看
Vector3: 

Unity3D中Vector3类定义(只写有用的): 

属性: 

x,y,z                表示一个空间向量。 

this                       用于访问x,y,z三个数据使用数组的方式访问,比如[0][1][2] 

normalized            返回单位化向量后的值(只读)。单位化向量是个很重要的概念,他常常是各种计算的基点,他保证了在不改变方向的前提下,使向量长度变为1。公式如下: 

                                                                

magnitude              返回向量长度值(只读),这词取得真怪,反正就是向量的模运算,得到向量的长度。公式就是x平方+y平方+z平方然后根号便是。这都不记得了赶紧回家面壁。 

sqrmagnitude         返回向量的平方长度(只读)。上面那个不开根号就是了。 

方法: 

Scale(a:vector3,b:vector3):vertor3  缩放,返回a的每个坐标乘以b的相对应的每个坐标。注意他是静态函数。 

Normalize() 向量化,注意magnitude向量长度会变为1. 

类特有的一些属性(直接粘help的了): 

zero      Shorthand for writing Vector3(0, 0, 0) 

one       Shorthand for writing Vector3(1, 1, 1) 

forward   Shorthand for writing Vector3(0, 0, 1) 

up        Shorthand for writing Vector3(0, 1, 0) 

right     Shorthand for writing Vector3(1, 0, 0) 

Maxtrix4*4: 

矩阵也是3D图形学一个重要的概念,在D3D里用的很平凡,但是U3D里好像都已经封装到各个Object上去了,所以很容易忽视掉,但不能忽视它的存在。在3D世界里,每个物体均有自身的世界矩阵,摄像机有摄像机矩阵,投影场景有projection矩阵,对顶点、向量、物体实施各种平移、旋转、缩放都是通过矩阵来完成的。计算机3D物体的标准4×4矩阵是这样定义的:(表示不出来矩阵大括号,请读者就当左4行的[和右4行的]当成一对大括号) 

                  [ x,  y  ,z  ,0]    <-  物体的右方向向量 

                  [ x,  y  ,z  ,0]    <-  物体的上方向向量 

                  [ x,  y  ,z  ,0]    <-  物体的前方向向量 

                  [ x,  y  ,z  ,1]    <-  物体所在的坐标 

注意:前三行的坐标一定是互有90度的,(除非特殊情况,例如空间扭曲之类的=.=)因为他们是物体的三个坐标轴。第四列的 0 0 0 1 是为了补齐4*4矩阵,为了计算方便而已。 

矩阵一样有单位矩阵和0矩阵, 

[1 0 0] 

[0 1 0]   其他的我就不说了,在Unity里头是完全封装的(见Transform) 

[0 0 1] 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: