【问题标题】:Preventing two draggable circles from overlapping when they intersect防止两个可拖动的圆圈相交时重叠
【发布时间】:2013-05-06 18:00:15
【问题描述】:

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

感谢您对解决方案的任何指导。谢谢。

【问题讨论】:

    标签: uiimageview draggable intersect


    【解决方案1】:

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

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

    if (距离

    【讨论】:

    • 您需要提供有关您的特定情况的更多背景信息。在您的 onDrag(假设是它,或 onMove)回调中,您应该可以访问旧位置和新位置。然后你应该有一个返回值,允许你取消移动事件(到目前为止你所拥有的代码示例将有助于更具体)。如果您没有该选项,则以编程方式将位置设置回旧的(移动/拖动前)值,或者设置为接触的限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2021-09-16
    相关资源
    最近更新 更多