判断一个点在圆内还是圆外

首先可以先确定一个点的申明方式,后续可以通过点来确定圆心。

#ifndef _POINT_H
#define _POINT_H
class Point
{
    private:
         int m_x;
         int m_y;
    public:
        void setxy(int x,int y);
        int getdistance(Point &p);
};

#endif

点的函数的实现

#include"Point.h"


void Point::setxy(int x,int y)
{
    m_x=x;
    m_y=y;
}
int Point::getdistance(Point &p)
{
    return ((this->m_x-p.m_x)*(this->m_x-p.m_x)+(this->m_y-p.m_y)*(m_y-p.m_y));
}

圆的头文件

#ifndef _CIRCLE_H
#define _CIRCLE_H

#include"Point.h"
class Circle
{
    private:
        int m_r;
        Point m_p;     //对象作为成员变量
    public:
         void set(int x,int y,int r);
         bool judge(Point &p);    
};
#endif

圆的函数的实现

#include"Circle.h"
#include"Point.h"
#include<iostream>
using namespace std;


void Circle::set(int x,int y,int r)
{
    m_r=r;
    m_p.setxy(x,y);
}

bool Circle::judge(Point &p)
{
    if(m_r*m_r>=p.getdistance(m_p))
    {
        return false;
    }
    else 
        return true;

}

main函数

#include"Circle.h"
#include<iostream>
using namespace std;

int main()
{
    Circle c;
    Point p;
    p.setxy(1,2);
    c.set(1,2,3);
    if(c.judge(p))
    {
        cout<<"圆外"<<endl;
    }
    else
    {
        cout<<"圆内"<<endl;        
    }
    return 0;
}

    

猜你喜欢

转载自blog.csdn.net/tmh_15195862719/article/details/81177025