如何检查圆是否与二维空间中的三角形相交?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查圆是否与二维空间中的三角形相交?相关的知识,希望对你有一定的参考价值。
这是我现在正在工作的程序所必需的。我必须处理的唯一信息是三角形顶点的坐标,圆心的坐标和圆的直径。如何判断圆是否在二维空间中接触/交叉三角形?我正在使用Processing。
答案
Stack Overflow并非真正设计用于一般的“我该怎么做”这类问题。这是针对具体的“我试过X,期待Y,但得到Z而不是”类型的问题。但我会尝试在一般意义上提供帮助:
你可以做的最好的事情是谷歌的东西,如circle triangle intersection或circle triangle collision detection。你会发现很多结果,包括:
- https://math.stackexchange.com/questions/867627/intersection-of-a-circle-and-a-triangle
- How to get collision detection of circle and triangle
- https://www.gamedev.net/forums/topic/406403-circle-in-triangle-intersection/
关键是,你不应该害怕做一些研究。尝试将一个小示例程序(也就是MCVE)放在一起,并在遇到问题时提出更具体的问题。祝好运。
另一答案
脚步:
- 检查从圆心(CC)到三角形每个顶点的平方距离
如果它们太大:
- 检查CC是否在三角形内(使用交叉产品的迹象)
如果不:
- 使用标量积计算CC到三角形边(线段)上的投影。如果投影位于边缘内,则计算从CC到边缘的距离。
以上是关于如何检查圆是否与二维空间中的三角形相交?的主要内容,如果未能解决你的问题,请参考以下文章