大物矢量积公式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大物矢量积公式
矢量运算,矢量之间的运算要遵循特殊的法则。

矢量加法一般可用平行四边形法则。

由平行四边形法则可推广至三角形法则、多边形法则或正交分解法等。

矢量减法是矢量加法的逆运算,一个矢量减去另一个矢量,等于加上那个矢量的负矢量。

矢量的乘法。

矢量和标量的乘积仍为矢量。

矢量和矢量的乘积,可以构成新的标量,矢量间这样的乘积叫标积;也可构成新的矢量,矢量间这样的乘积叫矢积。

例如,物理学中,功、功率等的计算是采用两个矢量的标积。

W=F·S,P=F·v,物理学中,力矩、洛仑兹力等的计算是采用两个矢量的矢积。

M=r×F,F=qv×B。

2D系统:
Point1(x1,y1),Point2(x2,y2)
距离D=sqr((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
3D系统:
Point 1(x1,y1,z1)Point 2 at(x2,y2,z2)。

xd = x2-x1
yd = y2-y1
zd = z2-z1
距离Distance = SquareRoot(xd*xd + yd*yd + zd*zd)
做游戏和demo永远不要去做开方:
用LUT查表技术(Look up Table)
在做碰撞检测时,误差Distance*Distance<a certain number
就可以认为点相撞了
折叠规格化,单位化(Normalize)
先要说矢量的长度:
矢量Vector(x,y,z)
矢量长度Length(Vector)= |Vector|=sqr(x*x+y*y+z*z)
Normalize后:
(x/Length(Vector),y/Length(Vector),z/Length(Vector)) 方向不变,长度为1个单位
求二矢量余弦:
由我们最熟悉的力做功:
cos(theta)=F.S/(|F|.|S|)
可以判断二矢量的方向情况: cos=1同向,cos=-1相反,cos=0直角
曲面消隐(Cull face)时判断物体表面是否可见:(法线和视线矢量的方向问题)cos>0不可见,cos<0可见
OpenGL就是这么做的。

mbert定理求光照强度也用点积:
Light=K.I.cos(theta)
K,I为常数,theta是平面法线与入射光线夹角
老王头的Fast Bump(Add Hyper Link here)也就是依据这个数学模型。

但是他用了个很Cheap的Hack来模拟cosine。

相关文档
最新文档