我正在使用Lispbuilder-SDL在Common Lisp中制作游戏。我目前正在编写一个函数来检查两个曲面之间的碰撞。我需要找出表面A是否与另一个表面B相交。我还没有看到任何符合https://lispbuilder.googlecode.com/svn/trunk/documentation/lispbuilder-sdl.html法案的内容 - 是否有人知道这样做的简单内置方式?
答案 0 :(得分:1)
当两个平面/表面相交时形成的线的数学并不困难。请参阅Intersecting Planes,Plane Geometry或一般Googling。如果没有交叉点,则平面/表面是平行的 - 有简单的测试。
平面由点和法线定义。如果两个平面法线的点积为1,则平面是平行的。在你的游戏中,如果点积足够接近1,则交点在游戏区域之外。