点到平面的距离

 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)


参考1:http://www.mofangge.com/html/qDetail/02/g0/201401/zwugg002432985.html

参考2:计算机图形学

 

夹角计算的依据:

点乘的结果= |a||b|cos@

所以cos@ = (点乘的结果) / |a||b|

 

二维向量的夹角:

pt1 = (x1, y1) 和 pt2 (x2,y2)的夹角计算

a = cos@ = pt1.Dot(pt2) / pt1.length *pt2.length = (x1*x2 + y1*y2) / (pt1.length * pt2.length)

夹角=arccos(a)

 

三维向量夹角计算:

pt1(x1, y1, z1) 和 pt2(x2, y2,z2)的夹角计算

a = cos@ = pt1.Dot(pt2) / pt1.length *pt2.length = (x1*x2 + y1*y2 + z1*z2) / (pt1.length * pt2.length)

夹角=arccos(a)

 

点到面距离:

点到面的距离= 点到面上任意点的距离 * cos(点面上点方向与 面normal 的夹角)

 

点pt到面(基点:ptBase,  法向:normal )的距离计算:

pt.distanceTo(ptBase) * (pt – ptBase).Cos(normal)

 

点是否在面上:

已知:在面上的所有点之间的连线都是和 面noraml垂直的。

判定点是否在面上,可以基于该点于面上任意点向量  是否 于normal垂直。

 

判定点pt是否在面(基点:ptBase,  法向:normal )上:

(pt-ptBase).Dot(normal) 如果等于0,则意味着在面上


 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

你可能感兴趣的:(算法)