我有三个 3D 点,例如p1(x1,y1,z1)
, p2(x2,y2,z2)
, p3(x3,y3,z3)
。
我还有一点,但我只知道x
, y
该点的值就像p4(x4,y4,Z)
,其中Z
是我喜欢计算的值。
我相信p4(x4,y4)
点位于由以下组成的三角形内p1(x1,y1)
, p2(x2,y2)
, p3(x3,y3)
通过检查 delaunay 三角测量方法。我怎样才能计算Z
点值p4
?我喜欢用 C 编程来实现它。其实我正在尝试实施griddata
在 MATLAB 中。
Thanks
p1
, p2
, p3
定义一个平面。您可以用一个点和一个法线来表示它。例如,P=p1
, N=(p2-P) x (p3-P)
(即,N = 叉积p1p2
and p1p3
).
现在,p4 在同一平面上,满足平面方程:
(p4-P) · N = 0 %// dot product
⇒ (x4-x1)*N.x + (y4-y1)*N.y + (z4-z1)*N.z = 0
重新安排:
z4 = z1 - ((x4-x1)*N.x + (y4-y1)*N.y)/ N.z
没有线性系统需要解决,你只需要一个叉积。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)