0
点赞
收藏
分享

微信扫一扫

c++例题:点与圆的关系

程序员伟杰 2022-02-12 阅读 88
c++

代码如下:

#include <iostream>
using namespace std;
//点类
class point
{
public:
       //设置x坐标
       void setx(int x)
       {
              m_x = x;
       }
       int getx()
       {
              return m_x;
       }
       //设置y坐标
       void sety(int y)
       {
              m_y = y;
       }
       int gety()
       {
              return m_y;
       }
private:
       int m_x;
       int m_y;
};
//圆类
class circle
{
public:
       //设置获取半径
       void setm_R(int R)
       {
              m_R = R;
       }
       int getR()
       {
              return m_R;
       }
       //设置获取圆心
       void setcenter(point center)
       {
              m_center = center;
       }
       point getcenter()
       {
              return m_center;
       }
private:
       int m_R;
       point m_center;
};
//判断点和圆的关系
void isincircle(circle& c, point& p)
{
       //计算点到圆心距离
       int distance =
              (c.getcenter().getx() - p.getx()) * (c.getcenter().getx() - p.getx()) +
              (c.getcenter().gety() - p.gety()) * (c.getcenter().gety() - p.gety());
       //计算半径平方
       int rdistance = c.getR() * c.getR();
       //比较
       if (distance == rdistance)
       {
              cout << "该点在圆上" << endl;
       }
       else if (distance > rdistance)
       {
              cout << "该点在圆外" << endl;
       }
       else
              cout << "该点在圆内" << endl;
}
int main()
{
       circle c;
       c.setm_R(10);
       point center;
       center.setx(10);
       center.sety(0);
       c.setcenter(center);
       point p;
       p.setx(10);
       p.sety(9);
       isincircle(c, p);
       system("pause");
       return 0;
}

 

举报

相关推荐

0 条评论