![]() |
1
2
对于你想做的事情,有几种不同的方法。你提到过碰撞检测:你想确定一个点是否与形状相交,还是想确定两个多边形是否相交? 如果你想要一个点,你要找的是所谓的“点在多边形测试”。有许多不同的方法,但最快和最直接的方法之一是射线测试。从点创建光线,并计算它穿过边缘的次数。如果数字是偶数,则该点位于外部。如果很奇怪的话,关键就在里面。 你可以在这里找到一篇好文章: http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html 本文中的代码实现如下所示:
确定两个多边形是否相交更为复杂,但并非完全不同。很多游戏实际上只是检查多边形的角点,用点在多边形中是容易和便宜的,但也可以检查完整的交叉点。 一种方法是将每个边视为一个分割平面/半空间。半空间的相交决定了两个多边形是否相交。 尝试寻找“分离轴定理”。 |
![]() |
2
0
Ziggyware(原名www.ziggyware.com)有一个关于二维多边形碰撞检测的教程,但ZW似乎正在搬往新家。 Here's a video 不过,教程的外观如何。 |
|
wavesinaroom · 断言结构向量长度 6 月前 |
![]() |
Amarth Gûl · 找到一组向量的最近收敛点 6 月前 |
![]() |
P_B · 如何从矩阵中减去均值向量 10 月前 |
![]() |
TheEagle · 根据迭代器的顺序向前或向后迭代 11 月前 |
![]() |
Mary Ann Moody · 如何创建一个包含2个元素的向量? 11 月前 |
![]() |
Chris · 如何在OpenSCAD中的FOR循环中成对创建矢量元素 1 年前 |