【问题标题】:android 2d arc collision detectionandroid 2d 圆弧碰撞检测
【发布时间】:2011-09-12 12:31:29
【问题描述】:

我有一个使用 android 2d 图形绘制的旋转弧

c.drawArc(new RectF(50, 50, 250, 250), 30, 270, true, paint);

弧线会在游戏运行时旋转

我想知道如何检测是否有其他游戏对象(矩形、圆)与它发生碰撞 ??

这是我第一次写游戏:)

我在http://hakim.se/experiments/html5/core/01/看到了类似的东西

提前致谢

【问题讨论】:

    标签: android collision-detection curve geometric-arc


    【解决方案1】:

    弧形碰撞比普通碰撞稍微难一些,但使用布尔代数可以轻松检查给定点是否在弧内。

    请看下图。

    这里有 3 个对象。黑色球体,这可视化了你的弧线,如果有东西与它碰撞,它可能在你的弧线内。黑色球体顶部的红色球体,这可视化了弧的“内部”,如果红色球体内有东西,它肯定不在弧的“内部”。现在还有一个绿色三角形可以可视化你的弧的“截止”,绿色三角形内的任何东西也肯定不在你的弧内。

    测试黑色球体内是否有东西很容易。 (物体到球心的距离 http://www.bing.com/search?q=point+triangle+collision&go=&form=QBLH&scope=web

    所以请记住:与弧碰撞 = (与黑色球体碰撞) && !(与红色球体碰撞) && !(与绿色三角形碰撞)。

    【讨论】:

    • 非常感谢,我会尝试在 android 中实现这个并告诉你我会发生什么。
    • 对于我的情况,我用矩形而不是三角形制作,因为曲线正好是半圆,这对我来说很好,谢谢你的帮助
    • 这是一个 Android 问题,但所有语言的概念都是相同的。这对我的 JS Canvas 有帮助。 +1
    • 好的,哇... 非常优雅的解决方案,以及为程序员编写的直观。我想我会使用它而不是继续我的研究...相交两个圆,然后检查相交点和弧角之间的重叠,即使这也可以。
    猜你喜欢
    • 2017-10-02
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多