我想计算三维空间中脸部两条边之间的角度。如何计算3D空间中多边形中两个边之间的角度?
我想我可以用在这个问题的解决方案:Signed angle between two 3D vectors with same origin within the same plane
然而,当我尝试一下在矩形的所有90个角,我得到一个角度是90度,另外三个是270
我对与几何有关的数学知之甚少,这就是为什么我要为此而努力并明确地做出错误的假设。
那么你如何计算脸部两个边缘之间的角度?
我的尝试:
def self.full_angle_between(vector1, vector2, normal)
angle = vector1.angle_between(vector2)
direction = normal % (vector1 * vector2)
angle = 360.degrees - angle if direction < 0.0
angle
end
normal
是面部正常 vector1
和vector2
从相同的顶点都起源和每个点朝任一方向的下一个顶点
vector1.angle_between(vector2)
指方法在SketchUp Rubu API:http://code.google.com/apis/sketchup/docs/ourdoc/vector3d.html#angle_between 它以弧度返回0-180之间的角度。
360.degrees
以弧度表示度数。另外一个SketchUp API方法。
当我遍历矩形中的所有顶点时,我会得到三个报告为270度的角度。为什么?
我发现了我的问题的来源。我没有检查我收到矢量的顺序。当我确保他们在相同的顺序和边缘循环中给出了正确的角度。 – thomthom