C++ 1 (只在源文件)//点和圆的关系 //设计一个圆形类 和一个点类 计算点和圆的关系 //点到圆心的距离 == 半径 点在圆上 //点到圆心的距离 > 半径 点在圆外 //点到圆心的距离 < 半径 点在圆内 //点到圆心的距离 获取 ....... (x1 -x2)^2 + (y1-y2)^2 开根号 和半径对比 // 计算 可以 两边同时 平方

  1 //点和圆的关系
  2 //设计一个圆形类 和一个点类 计算点和圆的关系
  3 //点到圆心的距离 == 半径   点在圆上
  4 //点到圆心的距离  > 半径   点在圆外
  5 //点到圆心的距离  < 半径   点在圆内
  6 //点到圆心的距离 获取 ....... (x1 -x2)^2 +  (y1-y2)^2 开根号 和半径对比
  7 // 计算 可以 两边同时 平方
  8 #include <iostream>
  9 #include<string>
 10 #include"circle.h"
 11 #include"point.h"
 12 
 13 using namespace std;
 14 
 15 //点类
 16 class Point
 17 {
 18 public:
 19     //设置X
 20     void setX(int x)
 21     {
 22         m_X = x;
 23     }
 24 
 25     //获取X
 26     int getX()
 27     {
 28         return m_X;
 29     }
 30     //设置Y
 31     void setY(int y)
 32     {
 33         m_Y = y;
 34     }
 35     //获取Y
 36     int getY()
 37     {
 38         return m_Y;
 39     }
 40 
 41 
 42 private:
 43 
 44     int m_X;
 45     int m_Y;
 46 };
 47 
 48 //圆类
 49 class Circle
 50 {
 51 public:
 52     //设置半径
 53     void setR(int r)
 54     {
 55         m_R = r;
 56     }
 57 
 58     //获取半径
 59 
 60     int getR()
 61     {
 62         return m_R;
 63     }
 64 
 65     //设置圆心
 66     void setCenter(Point center)
 67     {
 68         m_Center = center;
 69     }
 70 
 71     //获取圆心
 72     Point getCenter()
 73     {
 74         return m_Center;
 75     }
 76 
 77 private:
 78 
 79     int m_R;  //半径
 80 
 81     //在类中可以让另一个类 作为本类种的成员
 82     Point m_Center;  //圆心
 83 };
 84 
 85 //判断点和圆的关系
 86 
 87 void isInCircle(Circle &c, Point &p)
 88 {
 89     //计算两点之间距离  平方
 90     int distance =
 91         (c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) +
 92         (c.getCenter().getY()- p.getY()) * (c.getCenter().getY() - p.getY());
 93 
 94     //计算半径的平方
 95     int rDistance = c.getR() * c.getR();
 96 
 97 
 98     //判断关系
 99 
100     if (distance == rDistance)
101     {
102         cout << "点在圆上" << endl;
103     }
104     else if (distance > rDistance)
105     {
106         cout << "点在圆外" << endl;
107     }
108     else
109     {
110         cout << "点在圆内" << endl;
111     }
112 
113 
114 }
115 
116 
117 int main()
118 {
119 
120     //创建圆
121     Circle c;
122     c.setR(10);
123     Point center;
124     center.setX(10);
125     center.setY(0);
126     c.setCenter(center);
127 
128 
129 
130 
131     //创建点
132     Point p;
133     p.setX(10);
134     p.setY(10);
135 
136 
137     //判断
138     isInCircle(c, p);
139 
140 
141 }

 

posted on 2021-08-06 09:07  Bytezero!  阅读(141)  评论(0编辑  收藏  举报