三角形法向量与矢量乘法

伸出右手,使拇指与四指垂直,四指指向a的方向,弯向b的方向,则大拇指指的方向就是a*b的方向

 

数量积

数量积也叫点积,它是向量与向量的乘积,其结果为一个标量。几何上,数量积可以定义如下:

\vec{A}\vec{B}为两个任意向量,它们的夹角为\theta,则他们的数量积为:

\vec{A} \cdot \vec{B}=\left | \vec{A} \right | \left | \vec{B} \right | \cos {\theta} [3]

数量积被广泛应用于物理中,如做功就是用力的矢量点乘位移的矢量,即 W=\vec{F} \cdot \vec{s}

向量积

向量积也叫叉积矢量积,它也是向量与向量的乘积,不过需要注意的是,它的结果是个向量,但由于其结果是由坐标系确定,所以其结果被称为伪向量。

设有向量\vec{A}=(A_x\vec{i},A_y\vec{j},A_z\vec{k})\vec{B}=(B_x\vec{i},B_y\vec{j},B_z\vec{k})

则其向量积的矩阵表达式可写作:

\vec{A} \times \vec{B}=\begin{vmatrix}  \vec{i} & \vec{j} & \vec{k} \\  A_x & A_y & A_z \\  B_x & B_y & B_z\end{vmatrix}

      

实例:

我们需要找到三角形的法线(normal)。它是一个向量,是三角形平面上的一条垂线,如图



         法线是到达三角形表面的一条垂线

我们可以通过该平面的两个向量计算出它们的外积(cross product)从而求出这条法线。两个向量的积是一条垂直于这两条向量的新向量。我们将使用的这两条向量是点 A和B,点 B和C 之间的连线。每个向量都用有带有 x, y, z的 Object 持有。

var ab:Object = new Object();
ab.x = pointA.x - pointB.x;
ab.y = pointA.y - pointB.y;
ab.z = pointA.z - pointB.z;
var bc:Object = new Object();
bc.x = pointB.x - pointC.x;
bc.y = pointB.y - pointC.y;
bc.z = pointB.z - pointC.z;

然后计算法线,即另一个向量。求该对象的法向量(norm)。下面的代码用于计算向量ab和bc的外积:

var norm:Object = new Object();
norm.x = (ab.y * bc.z) - (ab.z * bc.y);
norm.y = -((ab.x * bc.z) - (ab.z * bc.x));
norm.z = (ab.x * bc.y) - (ab.y * bc.x);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值