【发布时间】:2016-05-02 09:58:10
【问题描述】:
我有一个 (x,y,z) 点的集合,这些点具有相应的法线和值。所以数据的格式是[x y z nx ny nz c]。我想在这些点上绘制一个 3D 表面,该表面垂直于这些法线并且具有与该值相对应的颜色。所以我想要的是surfnorm 的反面。
我已经设法使用meshgrid、interp2 和surf 绘制了一个曲面,但这并没有考虑到法线。我还想到了通过绘制垂直于法线的小方块来制作曲面。我设法做到了,但是看不到任何“填充”正方形之间空间的方法,因为这些点的间距不规则。
有什么好的方法可以做到这一点?
【问题讨论】:
-
你试过
fit表面吗? mathworks.com/help/curvefit/fit.html -
表面是否应该与无处不在 完全匹配的数据匹配?
-
哦,还有一个问题:数据中有什么结构吗?例如。是(x,y)中某种结构化网格上的点吗?请在问题中添加此类信息。
-
我认为数据是否只代表一个表面或可能包含两个或多个不相交的表面也很重要,例如两个分离的球体。
-
准确的方法是找到每一对法线平面的交点,然后用那些直线找到交点,形成不规则多边形,最后绘制出这些平面形状。它可以以数字方式实现,例如从定义的点增长法向平面,直到它们彼此相交;但这取决于点的分布,需要大量的运行时内存。