我有一个三角形网格描述的表面。我还有一个点P,它位于表面外。如何找到距离P最近的表面上的点?
我知道如何找到最接近的顶点,但最接近的点可能在顶点之间。我也考虑过进行光线追踪,但这并不总是有效,因为我不知道方向。
找到点到每个三角形的最小距离,然后从中找到最小的最小距离是唯一的方法。如果您需要找到到三角网格(其中可能包含许多三角形)的最近距离,并且有许多点,则此暴力方法将非常耗费计算资源。如果您有多个点,建议首先为三角网格创建八叉树。这将大大加快最小距离计算(对于多个点)。
我在Matlab中找不到任何内置的东西,但是我找到了一份描述/视频,可能会对您有所帮助。如果这还不够的话,希望其他人能够找到更有用的东西。 链接在这里。
看起来这将是一个交互式解决方案。如果链接本身没有帮助,那么该链接中留下的一些评论可能会有用。
希望这可以帮助你。
一种可能性是使用来自FileExchange的用户贡献: