【问题标题】: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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多