如何检查圆是否与二维空间中的三角形相交?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查圆是否与二维空间中的三角形相交?相关的知识,希望对你有一定的参考价值。

这是我现在正在工作的程序所必需的。我必须处理的唯一信息是三角形顶点的坐标,圆心的坐标和圆的直径。如何判断圆是否在二维空间中接触/交叉三角形?我正在使用Processing。

答案

Stack Overflow并非真正设计用于一般的“我该怎么做”这类问题。这是针对具体的“我试过X,期待Y,但得到Z而不是”类型的问题。但我会尝试在一般意义上提供帮助:

你可以做的最好的事情是谷歌的东西,如circle triangle intersectioncircle triangle collision detection。你会发现很多结果,包括:

关键是,你不应该害怕做一些研究。尝试将一个小示例程序(也就是MCVE)放在一起,并在遇到问题时提出更具体的问题。祝好运。

另一答案

脚步:

  1. 检查从圆心(CC)到三角形每个顶点的平方距离

如果它们太大:

  1. 检查CC是否在三角形内(使用交叉产品的迹象)

如果不:

  1. 使用标量积计算CC到三角形边(线段)上的投影。如果投影位于边缘内,则计算从CC到边缘的距离。

以上是关于如何检查圆是否与二维空间中的三角形相交?的主要内容,如果未能解决你的问题,请参考以下文章

二维平面三角划分

PCL随机采样一致性:RANSAC 圆拟合(二维圆 + 空间圆)

用于二维碰撞检测的四叉树

四维物体怎么穿过三维空间

51nod-1298 圆与三角形

网格二维三角剖分