计算stl文件中3d三角形的方向

问题描述 投票:0回答:1

我有这个三角形:

enter image description here

enter image description here

在此stl文件中:

solid
  facet normal -3.42 2.42 2.72
    outer loop
      vertex 0.75 0.06 0.15
      vertex 3.86 0.06 4.06
      vertex 1.75 0.93 0.63
    endloop
  endfacet
endsolid

而且我需要找出一种基于质心顶点(橙色矢量)获取三角形面方向/角度的方法。我确实有质心的值,但我想不出一种方法来获取三角形方向的值。每当三角形旋转时,其面/方向应返回代表该运动的x,y,z值。任何帮助或提示将不胜感激。解决方案可以用任何语言甚至伪代码编写。

3d stl rotation
1个回答
0
投票

似乎您的stl文件中的方向已经为facet normal

[如果只有三角形顶点,则可以找到两个边缘向量的vector product为法线。

Q = Vertex[1] - Vertex[0]   //per-element differences, like Q.x = V[1].x - V[0].x
R = Vertex[2] - Vertex[1]

N = Q x R  (N.x = (Q.y * R.z - Q.z * R.y) and so on)

要查找沿法线方向移动时顶点的位移,您需要对其进行归一化(单位长度)-将所有分量除以法线长度。

uN = N / Length(N)
Disp = uN * Distance (for example, dx = uN.x * Distance)
© www.soinside.com 2019 - 2024. All rights reserved.