点与扇形区碰撞检测,该如何解决
点与扇形区碰撞检测
现在做一个圆形的游戏操作虚拟键盘,上下左右四个方向,需要根据用户点击在那个区域,相应的产生对应的被按下的效果,我是利用surfaceView直接绘制的,然后标记的按键状态既可以实现。由于我对控件不太熟,是否能用重现groupView,实现对应的这种效果,不知道。
现在的问题就是:
1、采用我的办法,不知道点与扇形碰撞是怎么检测的?
2、如果采用重现groupView,如果能实现对应的效果的话,就不需要检查点与扇形的碰撞了,系统处理了?
忘各位高人指点?
------解决方案--------------------
按照弧度检测,把方向定义成4个90度的扇形区域,然后触摸的点和圆的中心两点之间算角度,看这角度落在哪个区域内就是点击哪个方向。
------解决方案--------------------
纯数学的的了,你把一个圆切成4份,然后,横的定义为X轴,竖的定义为Y轴,坐标系内一个点算它的角度很容易呀,然后看这角度落在那个象限内不就行了。
现在做一个圆形的游戏操作虚拟键盘,上下左右四个方向,需要根据用户点击在那个区域,相应的产生对应的被按下的效果,我是利用surfaceView直接绘制的,然后标记的按键状态既可以实现。由于我对控件不太熟,是否能用重现groupView,实现对应的这种效果,不知道。
现在的问题就是:
1、采用我的办法,不知道点与扇形碰撞是怎么检测的?
2、如果采用重现groupView,如果能实现对应的效果的话,就不需要检查点与扇形的碰撞了,系统处理了?
忘各位高人指点?
------解决方案--------------------
按照弧度检测,把方向定义成4个90度的扇形区域,然后触摸的点和圆的中心两点之间算角度,看这角度落在哪个区域内就是点击哪个方向。
------解决方案--------------------
纯数学的的了,你把一个圆切成4份,然后,横的定义为X轴,竖的定义为Y轴,坐标系内一个点算它的角度很容易呀,然后看这角度落在那个象限内不就行了。