1 源文件 main.cpp
2 //点和圆的关系
3 //设计一个圆形类 和一个点类 计算点和圆的关系
4 //点到圆心的距离 == 半径 点在圆上
5 //点到圆心的距离 > 半径 点在圆外
6 //点到圆心的距离 < 半径 点在圆内
7 //点到圆心的距离 获取 ....... (x1 -x2)^2 + (y1-y2)^2 开根号 和半径对比
8 // 计算 可以 两边同时 平方
9 #include <iostream>
10 #include<string>
11 #include"circle.h"
12 #include"point.h"
13
14 using namespace std;
15
16 ////点类
17 //class Point
18 //{
19 //public:
20 // //设置X
21 // void setX(int x)
22 // {
23 // m_X = x;
24 // }
25 //
26 // //获取X
27 // int getX()
28 // {
29 // return m_X;
30 // }
31 // //设置Y
32 // void setY(int y)
33 // {
34 // m_Y = y;
35 // }
36 // //获取Y
37 // int getY()
38 // {
39 // return m_Y;
40 // }
41 //
42 //
43 //private:
44 //
45 // int m_X;
46 // int m_Y;
47 //};
48 //
49 ////圆类
50 //class Circle
51 //{
52 //public:
53 // //设置半径
54 // void setR(int r)
55 // {
56 // m_R = r;
57 // }
58 //
59 // //获取半径
60 //
61 // int getR()
62 // {
63 // return m_R;
64 // }
65 //
66 // //设置圆心
67 // void setCenter(Point center)
68 // {
69 // m_Center = center;
70 // }
71 //
72 // //获取圆心
73 // Point getCenter()
74 // {
75 // return m_Center;
76 // }
77 //
78 //private:
79 //
80 // int m_R; //半径
81 //
82 // //在类中可以让另一个类 作为本类种的成员
83 // Point m_Center; //圆心
84 //};
85
86 //判断点和圆的关系
87
88 void isInCircle(Circle &c, Point &p)
89 {
90 //计算两点之间距离 平方
91 int distance =
92 (c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) +
93 (c.getCenter().getY()- p.getY()) * (c.getCenter().getY() - p.getY());
94
95 //计算半径的平方
96 int rDistance = c.getR() * c.getR();
97
98
99 //判断关系
100
101 if (distance == rDistance)
102 {
103 cout << "点在圆上" << endl;
104 }
105 else if (distance > rDistance)
106 {
107 cout << "点在圆外" << endl;
108 }
109 else
110 {
111 cout << "点在圆内" << endl;
112 }
113
114
115 }
116
117
118 int main()
119 {
120
121 //创建圆
122 Circle c;
123 c.setR(10);
124 Point center;
125 center.setX(10);
126 center.setY(0);
127 c.setCenter(center);
128
129
130
131
132 //创建点
133 Point p;
134 p.setX(10);
135 p.setY(10);
136
137
138 //判断
139 isInCircle(c, p);
140
141
142 }
143
144 新建头文件
145 point.h
146 #pragma once
147 #include<iostream>
148 using namespace std;
149
150 //点类
151 class Point
152 {
153 public:
154 //设置X
155 void setX(int x);
156
157 //获取X
158 int getX();
159
160 //设置Y
161 void setY(int y);
162
163 //获取Y
164 int getY();
165
166
167
168 private:
169
170 int m_X;
171 int m_Y;
172 };
173
174
175
176
177 新建 point.c 源文件
178 #include "point.h"
179 //点类
180
181
182 //设置X
183 void Point::setX(int x)
184 {
185 m_X = x;
186 }
187
188 //获取X
189 int Point::getX()
190 {
191 return m_X;
192 }
193 //设置Y
194 void Point::setY(int y)
195 {
196 m_Y = y;
197 }
198 //获取Y
199 int Point::getY()
200 {
201 return m_Y;
202 }
203
204 新建 circle.h 头文件
205 #pragma once
206 #include <iostream>
207 using namespace std;
208 #include "point.h"
209
210
211 //圆类
212 class Circle
213 {
214 public:
215 //设置半径
216 void setR(int r);
217
218
219 //获取半径
220
221 int getR();
222
223
224 //设置圆心
225 void setCenter(Point center);
226
227
228 //获取圆心
229 Point getCenter();
230
231
232 private:
233
234 int m_R; //半径
235
236 //在类中可以让另一个类 作为本类种的成员
237 Point m_Center; //圆心
238 };
239 新建circle.c 源文件
240 #include "circle.h"
241 //圆类
242
243 //设置半径
244 void Circle::setR(int r)
245 {
246 m_R = r;
247 }
248
249 //获取半径
250
251 int Circle::getR()
252 {
253 return m_R;
254 }
255
256 //设置圆心
257 void Circle::setCenter(Point center)
258 {
259 m_Center = center;
260 }
261
262 //获取圆心
263 Point Circle::getCenter()
264 {
265 return m_Center;
266 }