矩形、圆和直线之间的碰撞检测

碰撞检测一般用于游戏设计中,比如现在比较火的游戏“王者荣耀”,我们玩游戏中可以看到英雄一般走到地方防御塔的攻击范围,就会被攻击,但是程序员在下代码的时候,不能看到,只能用一段段代码表示,这是就要用到碰撞检测,还判断两个物体是否相交。
在这里我主要说三种主要的相交的判断,其他的碰撞都是在此条件下演变出来的:
在这里先写一下矩形、圆、直线的类代码:

//矩形类
class rect{
   
private:
 double xl;
 double yl;
 double xr;
 double yr;
public:
 rect(double _xl, double _yl, double _xr, double _yr)
  :xl(_xl), yl(_yl), xr(_xr), yr(_yr)
 {
   }
 bool collideRL(linear& l);
 bool collideRC(Circle& c);
 bool collideRR(rect& r, rect& r1);
};
//圆类
class Circle{
   
private:
 double x;
 double y;
 double r;
public:
 Circle(double _x, double _y, double _r)
  :x(_x), y(_y), r(_r)
 {
   }
 double getCx(){
    return x; }
 double getCy(){
    return y; }
 double getCr(){
    return r; }
};
//直线类
class linear{
   
private:
 double k;
 double b;
 double x1;
 double x2;
public:
 linear(double _k, double _b, double _x1, double _x2)
  :k(_k), b(_b), x1(_x1)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值