2.11 求点是否在圆内

#include<iostream>
using namespace std;

//点类
class Point
{
public:
    //获取点的位置
    void setXY(int x,int y)
    {
        m_x = x;
        m_y = y;
    }
    int getX()
    {
        return m_x;
    }

    int getY()
    {
        return m_y;
    }

private:
    int m_x;
    int m_y;

};

//圆类
class Circle
{
public:
    //设置圆心
    void setXY(int x,int y)
    {
        x0 = x;
        y0 = y;
    }
    //设置半径
    void setR(int r)
    {
        m_r = r;
    }
    //提供一个判断点是否在圆内,true表示在圆内,false表示在圆外
    bool judgePoint(Point &p)
    {
        int dd;
        dd = (p.getX()-x0)*(p.getX()-x0)+(p.getY()-y0)*(p.getY()-y0);
        if (dd<m_r*m_r)
            return true;
        else
            return false;
    }

private:
    int x0;
    int y0;
    int m_r;
};

int main()
{
    Point p ;
    p.setXY(8,8);

    Circle c;
    c.setR(4);
    c.setXY(0,0);

    if (c.judgePoint(p))
         cout << "点在圆内" << endl;
    else
    {
        cout << "点在圆外" << endl;
    }
    return 0;
}

Come on boy!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值