【问题标题】:Calculate Normal Vector on Fitted Surface计算拟合曲面上的法向量
【发布时间】:2022-11-01 14:36:16
【问题描述】:
是否有任何直接的方法可以在适合数据的线性表面上导出法线向量。
表面是由我的 X、Y、Z 数据点上的 fit 函数创建的:
sf = fit([X2, Y2],Z2,'poly11');
c = coeffvalues(sf);
P0 = [0; 0; c(1)];
plot(sf,[X2,Y2],Z2)
图中的线性多项式曲面:
现在我需要获取正常的N 向量,以便通过点函数计算所有点到曲面的距离:
dot(sf-P0,N)
有什么指导吗?
非常感谢!
【问题讨论】:
标签:
matlab
vector
surface
【解决方案1】:
好的,根据here 和许多其他来源,如果您以以下形式定义平面
Ax + By + Cz = D
然后,您正在寻找的法线向量将是 [A, B, C]。
现在通过使用 fit,您获得了一个 sf 对象,其 coeffvalues c 的顺序为
z=c(1)+c(2)x+c(3)y
这与
c(2)x+c(3)y-z=c(1)
在那里,你得到一个法线向量,N=[c(2), c(3), -1].
然后,计算 P0 与表面之间的距离,one way 是
(P0 * (N.') + c(1)) / norm(N)