续: http://blog.csdn.net/yinhun 2012/article/details/79425674
以前,我们从物理意义上进行了工作。 也就是说,数学中向量点积的实际意义。 在这篇文章中,我们学习了物理上另一种力的作用,即力矩。
物理上力矩定义了力对物体产生旋转作用的物理量。 在这里,想象一下陀螺仪、老式的摆动柴油发动机、用于建造隧道的隧道机械等现实中的力矩现象。
现在让我们看看旧柴油发动机的方向盘。 如下图所示。
如果OA的半径圆的切线侧的力f相对于方向盘摆动,则会产生沿着z轴的力矩l。 求力矩l在物理上定义为对力f施加力臂OA。 也就是说,L=F*OA。
这里,力矩l可以看作与z轴重叠的矢量。 力矩l的数值与力f作用的瞬间(那个瞬间,之后用微分说明瞬间的意思)和力臂OA构成的平行四边形) (特殊的情况下,例如如果f是切线的话是矩形) )的面积相等,在上图中力m是普通的。 求出AM '和MG的积拯救力矩的矢量的模长。
我试着拉了这么多,其实我阐述了力矩的这个定义。 在数学上,计算力矩叫做计算外积。 接下来,我们将观察外积的几何含义。
创建空间xyz坐标系,如下图所示。
向量OA和AB的外积OC、OC的属性有两个
OC与OA垂直,AB所在的平面(由不共线的三点决定一个平面) )。
OC的矢量模长等于由OA、AB构成的平行四边形的面积
接下来考虑如何计算OC这个向量。 为了直观地思考,请看下图。
够形象了吧。 OC这个“力矩”与OB垂直,且与OA垂直。 并且,模具的长度等于|OA|*|OB|*sinBOA。 下图:
推定oc的z代数坐标分量,则问题变换为如下图求z分量。
在此,使用xyz基础坐标2个外积等第3轴的基础坐标,以这种特殊的形式推出OC中z值。
如下图所示,用程序验证一下。
using System.Collections; using system.collections.generic; using UnityEngine; publicclasscrossmathfunc : mono behaviour { publictransformahead; public Transform aTail; 公共转换b头; public Transform bTail; void Start (()//a ) a1、a2和a3 ) vector 3a=atail.position-ahead.position; //b(B1、b2、b3 ) vector 3b=Bt ail.position-b head.position; //在推导公式中输入Vector3 crossAB=new Vector3(缓慢短靴,A.z * B.x - A.x * B.z,A.x * B.y - A.y * B.x ); //vector3apicrossab=用api计算vector3. cross (a,b ) # if unity _ editor debug.logformat (cross ab={0} apicrossab=#endif }}
以上介绍了向量外积的含义和导出过程,接下来我们来看看两个向量外积的比较示意图。 如下所示。
通过规定的逆时针旋转,可知两向量夹角为0-180时外积向量n为“向上”,夹角为180-360时外积向量n为“向下”。
这个“向上”和“向下”是相对的概念。 使用左手坐标系时,如下图所示。
那么,上面沿着y轴为正方向,下面为负方向。
将外积应用于图形学主要是计算法向量。 由于图形学中经常出现光线反射问题,外积为我们提供了一种计算矢量的方法,以后继续导出光线反射。