我到处寻找我可以做的事情我猜有一个简单的解决方案。但我是一名新程序员,我遇到了一些麻烦。我在视图中有一些可拖动的图像视图圈,我想防止图像视图之间的任何重叠。我不是在寻找任何严重的碰撞解决方案(摩擦,矢量等......),只是一旦它们彼此接触就阻止图像视图进一步发展。
对此解决方案的任何指导表示赞赏。感谢。
答案 0 :(得分:0)
这应该只是位置和半径的简单比较...... 尝试拖动时,计算任意两个圆的中心点之间的距离(使用新位置),如果小于半径之和,则它们重叠。伪代码:
onMoveAttempted() { distance = sqrt((moving(x) - existingcircle(x))^ 2)+((moving(y) - existingcircle(y))^ 2))
if(距离<(移动圆的半径+现有圆的半径) 然后 禁止移动,因为圆圈会重叠 万一 }