matlab – 从法线和点绘制3D表面

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

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

有什么好办法来实现这个目标?

最佳答案 我看到两个选择:

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

2)假设拟合函数,例如2D多项式,并使用优化方法来匹配数据.您需要一个目标函数,一方面考虑x,y,z数据,另一方面考虑正常分量nx,ny,nz.缺点:根据您选择的拟合函数,它不太可能准确表示原始曲面.

点赞