将一个共面的三维点集映射到它们的平面二维坐标

4
我有一组由剖面截取的三维模型网格上的点以及每个点的法线。这些点位于同一平面上。
问题在于,我需要将这些三维点映射到它们的平面二维坐标 (u,v),以便用于形成网格的 Delaunay 三角剖分。因此,我需要一个变换矩阵来将这些三维共面点转换为它们的平面二维坐标。请注意保留原有的 HTML 标签。

我不知道为什么你需要一个矩阵,因为在你的情况下这只是一个简单的投影。如果你正在使用C++,CGAL库有一个示例,展示如何对3D共面点进行2D三角剖分这里 - sloriot
实际上我正在使用“Triangle”库进行三角剖分,该库需要2D坐标。这就是为什么我需要将这些点转换为本地2D点的原因。 - Nidhi
1
然后只需使用u=y和v=z。 - sloriot
如果我有一组三维点,这些点是通过沿任意平面切割三维模型获得的,那么变换会是什么?由于这次所有点都有不同的坐标,我们不能忽略任何一个(x,y,z)坐标。 - Nidhi
请更新您的问题。您正在写“与x轴垂直的平面”。 - sloriot
可能是将3D点投影到2D平面的重复问题。 - John Alexiou
1个回答

1
简单的解决方案是在所有点处定义一个垂直于法向量的平面。在这种情况下,您只需将每个矢量的Z分量指定为等于0的曲面上的点的二维表示即可。然后,您的变换(或正确地说是旋转)矩阵是相对于该平面定义的。
该方法的详细信息请参见平面几何,如何实现的细节请参见使用点和法向量定义R3中的平面

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接