从法线和点绘制3D表面

时间:2016-05-02 09:58:10

标签: matlab plot 3d

我有一组(x,y,z)点,在这些点上有相应的法线和值。所以数据的格式为[x y z nx ny nz c]。我想在这些点上绘制一个垂直于那些法线的3D表面,并且颜色对应于该值。所以我想要的是surfnorm的反面。

我已设法使用meshgridinterp2surf绘制表面,但这并未考虑法线。我还想通过绘制垂直于法线的小方块来制作曲面。我设法做到了,但没有看到任何方法'填补'正方形之间的空间,因为这些点是不规则的间隔。

实现这一目标的好方法是什么?

1 个答案:

答案 0 :(得分:1)

我看到两个选项:

1)使用基于点和法线的多边形进行直接几何重建。我认为patch函数在这种情况下会很有用。它允许设置颜色。缺点:您需要进行大量手动处理和处理特殊情况。

2)假设拟合函数,例如2D多项式,并使用优化方法来匹配数据。您需要一个目标函数,一方面考虑xyz数据,另一方面考虑正常组件nxny,{另一方面,{1}}。缺点:根据您对拟合函数的选择,它不太可能得到原始曲面的精确表示。

相关问题