您想要使用分离轴定理(SAT)来解决问题。通常它用于三维,但在二维中也可以很好地使用。由于您有一个特殊情况,因此您需要考虑的唯一轴是矩形的4个主轴:[1,0] [0,1] [sin(theta),cos(theta)] [-cos(theta),sin(theta)]要检查一个轴,请计算每个顶点与该轴的点积。然后检查2组值的最小值和最大值是否重叠。如果任何一个轴给出的范围不重叠,则矩形不重叠(您已经找到了一个分离轴)。如果所有4个轴都显示重叠,则矩形相交。以下是关于同一问题的最近一个SO问题: Separating Axis Theorem and Python 这是维基百科的文章: http://en.wikipedia.org/wiki/Separating_axis_theorem
最有效的方法是创建一个包围旋转矩形的较大矩形,然后基于包围矩形进行碰撞检测。这意味着包围矩形碰撞并不表示“命中”,而是需要进一步调查的条件。根据您可以做出的假设不同,调查的方式也不同。在最简单的情况下,您可以使用AND像素检查真实输出。然后,您可以使用此“确认”的命中来使用更复杂的模型进行分析;考虑到碰撞的角度、速度、几何形状和弹性(或您感兴趣的任何内容)的模型。存在更复杂的模型,但通常更复杂的模型需要更多的计算能力。通过设置一系列快速、快速的检查并仅在它们将产生回报的情况下使用重型计算周期,可以更轻松地节省计算能力。