点和矩形碰撞

/** *  * @param x1 点 * @param y1 点 * @param x2 矩形view x * @param y2 矩形view y * @param w  矩形view 宽 * @param h  矩形view 高 * @return */public static boolean isCollision(int x1, int y1, int x2, int y2, int w, int h) {if (x1 >= x2 && x1 <= x2 + w && y1 >= y2 && y1 <= y2 + h) {return true;} return false;}

矩形碰撞

/** * 检测两个矩形是否碰撞 * @return */public boolean isCollisionWithRect(int x1, int y1, int w1, int h1, int x2,int y2, int w2, int h2) {if (x1 >= x2 && x1 >= x2 + w2) {return false;} else if (x1 <= x2 && x1 + w1 <= x2) {return false;} else if (y1 >= y2 && y1 >= y2 + h2) {return false;} else if (y1 <= y2 && y1 + h1 <= y2) {return false;}return true;}

点(x1,x2) , 圆心(x2,y2) ,半径r

if (Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)) <= r) {// 如果点和圆心距离小于或等于半径则认为发生碰撞return true;}

圆和圆

/** * 圆形碰撞 *  * @param x1 *            圆形1的圆心X坐标 * @param y1 *            圆形2的圆心X坐标 * @param x2 *            圆形1的圆心Y坐标 * @param y2 *            圆形2的圆心Y坐标 * @param r1 *            圆形1的半径 * @param r2 *            圆形2的半径 * @return */private boolean isCollisionWithCircle(int x1, int y1, int x2, int y2,int r1, int r2) {// Math.sqrt:开平方// Math.pow(double x, double y): X的Y次方//直角坐标系,依点1和点2做平行线,|x1-x2|为横向直角边,|y1-y2|为纵向直角边 依勾股定理 c^2=a^2+b^2if (Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)) <= r1 + r2) {// 如果两圆的圆心距小于或等于两圆半径和则认为发生碰撞return true;}return false;}


更多相关文章

  1. Android实现自定义圆形ImageView
  2. Android可定制 圆形/圆角 Imageview(RoundedImageView)
  3. Android圆形进度条颜色的设置
  4. Android(安卓)ApiDemos示例解析(80):Graphics->Sweep
  5. android 圆形ListView实现,并附带圆角ImageView
  6. Android(安卓)开发:glide圆角正确实现方法
  7. Android(安卓)仿百度网页音乐播放器圆形图片转圈播放效果
  8. android 画环形的资料
  9. android 用canvas.clipPath 画不规则的Bitmap

随机推荐

  1. Android(安卓)- SQLite
  2. 使用Android(安卓)OpenGL ES 2.0绘图之二
  3. Android面试过程描述
  4. 华为发布全新IDE:DevCro Studio,Facebook正
  5. 微信稳居Android App排行榜4月份国内榜首
  6. 谈Android终端厂商的如何建设 ——
  7. Android Socket与HTTPS校验
  8. Android(安卓)点击通知栏消息打开activit
  9. 一起Talk Android吧(第二百六十五回:Androi
  10. MacAndroid源码下载 Android10详解