c++ - 计算点云中每个点的法线?

标签 c++ math normals point-clouds

我有一系列构成点云的点。我需要计算每个点的法 vector ,并从该点向法 vector 的方向转换一条射线。在这种情况下,我需要使用什么类型的公式来计算法 vector ?

编辑* 我有一系列点 (x, y, z) 形成点云(称为 A),形成半球体的形状。我还有另一个点云(称为 B),我在其上安装了一个表面,形成另一个适合 A 内部的半球体。我想测量这些表面彼此相距多远的长度,所以我的计划是从 A 中的每个点向表面 B 转换一条射线,并测量与该点的交点。我希望这个解释能让我的问题更清楚。

谢谢你的帮助!

最佳答案

您是否有网格以便知道一个点连接到哪些其他局部点?

在这种情况下,该点的法线是在该点相交的每对线之间的叉积的平均值(即归一化为一个单位 vector )。

关于c++ - 计算点云中每个点的法线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16195297/

相关文章:

html - 所见即所得的数学 html 编辑器

c - OpenGL 光照具有明亮的表面

c++ - 为任意网格生成三平面 UV?

c++ - 法线贴图问题

c++ - -0 和 0 有什么区别?

c++ - 如何在mfc项目中创建新窗口

c++ - C++中的简单线程池

c++ - GCC Segmentation Fault Mac

python - 解析 x,y 坐标列表并检测连续区域

python - 在 Numpy 中从一个音高到另一个音高的正弦波滑音