android 2d弧碰撞检测

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

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

游戏运行时弧线会旋转,

我想知道我是如何检测是否有任何其他游戏对象(rects,circle)与它相撞?

这是我第一次写游戏:)

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

提前致谢

解决方法:

圆弧碰撞比正常碰撞稍微硬一些,但使用布尔代数,您可以轻松检查给定点是否在弧内.

看看下面的图片.

这里有3个对象.黑色球体,这可以看到你的弧线,如果有东西碰撞它,它可能在你的弧线内.黑色球体顶部的红色球体,可以看到弧线的“内部”,如果红色球体内部有东西,它绝对不会在弧线内部.现在还有绿色三角形可视化你的弧线的“截止”,绿色三角形内的任何东西也绝对不在你的弧线中.

测试是否有东西在黑色球体内是很容易的. (物体到球体中心的距离< =球体半径).红色球体也是如此.绿色三角形有点棘手,你首先必须构建它.找到弧的起点和终点弧度.并通过起始弧度旋转单位矢量.然后用结束弧度旋转单位矢量.将这两个向量延长2 *黑球的半径.现在使用弧的中心点和两个向量的位置,将中心位置添加为三角形的3个点.然后,您可以使用其中一个点三角形碰撞解算器:http://www.bing.com/search?q=point+triangle+collision&go=&form=QBLH&scope=web

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

上一篇:Maya编程——沿Curve绘制圆柱


下一篇:python 拟合曲线并求参