四边形交叉算法

时间:2012-09-21 14:35:19

标签: c# rotation intersection opentk

我正在编写一个游戏(带有OpenTK的2D),其中有很多旋转,随之而来的是我有时需要获得这些线条/形状之间的交集: Two quadrangles http://files.myopera.com/antonijn/albums/12693002/TwoQuadrangles.png

我知道它们的旋转(以度为单位),因此我知道两个形状中所有顶点的位置。

算法需要给我一个关于他们是否相交或更好的交叉点坐标的问题。

我编写了自己的算法,滚动第一个框的两侧,获取每一侧的公式,并将它们与第二个框的行的公式进行比较。现在,当线条直立(float.Infinity或float.NegativeInfinity的斜率)时,这不起作用,是一个痛苦的调试,并且远非快速,所以我需要一个更好的!

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我最终使用了SAT方法,正如Nickon所建议的那样,感谢一群朋友!