0

我到处寻找我能猜到的有一个简单的解决方案。但我是一名新程序员,遇到了一些麻烦。我的视图中有几个可拖动的图像视图圆圈,我想防止图像视图之间出现任何重叠。我不是在寻找任何严重的碰撞解决方案(摩擦、矢量等),只是在图像视图相互接触后阻止它们继续前进。

对解决方案的任何指导表示赞赏。谢谢。

4

1 回答 1

0

这应该只是位置和半径的简单比较......当尝试拖动时,计算任意两个圆的中心点之间的距离(使用新位置),如果它小于半径的总和,它们重叠. 伪代码:

onMoveAttempted() { 距离 = sqrt (((moving(x) - existingcircle(x))^2) + ((moving(y) - existingcircle(y))^2))

if (distance < (移动圆的半径 + 现有圆的半径) then 禁止移动,因为圆会重叠 end if }

于 2013-05-06T18:08:44.240 回答