3d - 在 3D 中计算点到三角形距离的最快方法?

标签 3d geometry distance

计算点到 3D 三角形的最小距离的一种明显方法是将点投影到三角形平面上,确定结果点的重心坐标,并使用它们来确定投影点是否位于三角形内。如果没有,请将其重心坐标限制在 [0,1] 范围内,这将为您提供位于三角形内的最近点。

有没有办法以某种方式加快或简化它?

最佳答案

有不同的方法可以找到从点 P0 到三角形 P1、P2、P3 的距离。

  • 3D 方法。
    将点投影到三角形的平面上,并使用重心坐标或其他一些方法来找到三角形中最近的点。以通常的方式找到距离。
  • 二维方法。对点应用平移/旋转,使 P1 位于原点,P2 位于 z 轴,P3 位于 yz 平面。投影是点 P0 是微不足道的(忽略 x 坐标)。这会导致二维问题。使用边方程可以确定三角形的最近顶点或边。计算距离是很容易的。

  • paper将两者的性能与 2D 方法获胜进行比较。

    关于3d - 在 3D 中计算点到三角形距离的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2924795/

    相关文章:

    php - 使用 Autodesk Forge 从 IFC 文件获取几何数据(尺寸)

    c++ - 什么是opencv中的V4L/AVLD?

    python - 有效地检查矩形和圆的扇形之间的碰撞

    algorithm - 计算旋转矩形中的最大内接矩形

    c# - 基本渲染 3D 透视投影到带摄像头的 2D 屏幕(不带 opengl)

    opengl - 如何在 OpenGL 中通过 2D 屏幕鼠标单击大型对象获得准确的 3D 深度?

    c++ - 使用正确的优化算法 C++ 查找 3D 空间中点之间的距离

    Java 地理工具 : how to find distance from a point to closest polygon in shape file

    mysql - 如何在不使用几何类型的情况下在 MySQL 中获得更高的计算距离精度?

    java - 映射现实世界的城市并计算距离 Java