目录
1.向量(Vector3)
结构体
public class Vector3D
{
public float x;
public float y;
public float z;
public float w;
public Vector3D()
{
x = y = z = w = 0f;
}
public Vector3D(float _x,float _y,float _z,float _w = 0f)
{
x = _x;
y = _y;
z = _z;
w = _w;
}
public Vector3 ToVector3()
{
return new Vector3(x, y, z);
}
}
叉积(cross)
叉积计算可以用于计算平面法线方向,判断射线是否相交。
计算公式:
代码:
// 叉积
public Vector3D cross(Vector3D v)
{
Vector3D w = new Vector3D();
w.x = y * v.z - z * v.y;
w.y = z * v.x - x * v.z;
w.z = x * v.y - y * v.x;
w.w = 0f;
return w;
}
测试结果:
点积(dot)
计算矩阵时使用
计算公式:
代码:
// 点积
public float dot(Vector3D v)
{
return x * v.x + y * v.y + z * v.z;
}