四线网格上的3D线投影

时间:2017-11-13 20:37:17

标签: c++ 3d geometry mesh

我有两个3D点,A和B.这些点位于由四边形网格形成的表面上,M和A不能保证是网格的顶点,并且之间形成的线条显然不能保证谎言完全在表面上。

让图像一个人想要从A行进到B.如果我们想象我们可以将线条投射到曲面上,我希望恢复投影相交的面部列表,因为我们完成从A到B的行走。线条不是&保证始终位于网格内部或外部,实际上它可以从内部切换到外部,反之亦然。

你可以把它想象成你沿着网格表面沿着这条线在" sky"中散步。当你沿着从A到B的路径时,你会看到什么面孔。

我不需要恢复测地距离,我事先知道A-> B线,所以它不是一个寻路的练习。

怎么可以有效地做到这一点?

1 个答案:

答案 0 :(得分:0)

提示:

只要没有投影方向,投影就不会真正定义。也许你想要一个尽可能与表面正交的投影?也许一个不变的方向可以吗? (在后一种情况下,您只需要将表面与平面相交。)

您必须找到靠近该线的构面。如果您沿着线段的方向查看,则面将显示为线段,您必须找到靠近投影线的线段(看作单个点)。

如果已将构面排列在边界球体的层次结构中,则可以向任意方向查看,并有效地查找候选区段(面)。使用球体,你也可以拒绝那些与3D中的(有界)线相交的那些球,超过了这些球。

然后,您可以使用靠近端点的面来选择平面方向,并获取面与平面的各个交点,并重建三维多段线。