图像层与形状之间的碰撞检测

2024-04-25 17:03:50 发布

您现在位置:Python中文网/ 问答频道 /正文

如何有效地检测图像层和生成的形状之间的冲突?你知道吗

我需要一个快速和全面的方法来检测可旋转的图像层和生成的形状之间的碰撞。你知道吗

到目前为止,我只是将图像分成一系列包含大多数像素的圆,然后将每个圆与其他形状进行对比测试。为了提高性能,我在每个结构周围创建了周长圆,并且只测试这些较大的圆,直到两个结构足够接近而发生碰撞。你知道吗

真正的问题是,很难将一个可旋转的矩形碰撞成这些图像结构之一。用圆填充矩形似乎也不太有效。更不用说,我得到的组合爆炸,使循环非常复杂和糟糕的性能。你知道吗

有人知道更好的方法来处理这种碰撞吗?我用java、python和C++编写,我也愿意使用C++。你知道吗


Tags: 方法图像像素java性能结构形状矩形
1条回答
网友
1楼 · 发布于 2024-04-25 17:03:50

通常情况下,球体碰撞只是真实碰撞测试的过滤器。你知道吗

您可以:

  • 决定将碰撞限制在这个范围内,例如,如果这是一个游戏。你知道吗
  • 实现真正的碰撞和做完整的数学。基本上是两个矩形的旋转边相交(16例)。将两条边作为直线相交,只有一个相交点(除非它们平行),如果该点在线段内,则会发生碰撞。你知道吗

为了限制复杂性,可以使用四叉树/八叉树。把你的空间分成四个矩形,然后把这些矩形分成四个等等。。。直到它们太小而不能容纳一个物体或是空的。把你的可碰撞物体放在树上最具体的部分。只有在两个对象位于同一子矩形中或其中一个位于另一个的任何父对象中时,它们才能发生碰撞。你知道吗

不确定这是否有帮助,但它们是想法。你知道吗

相关问题 更多 >