点和圆的关系

 1 #include<iostream>
 2 using namespace std;
 3 class Point
 4 {
 5 public:
 6     void setX(int x)
 7     {
 8         mX = x;
 9     }
10     void setY(int y)
11     {
12         mY = y;
13     }
14     int getX()
15     {
16         return mX;
17     }
18     int getY()
19     {
20         return mY;
21     }
22 private:
23     int mX;
24     int mY;
25 };
26 //圆类
27 class Circle
28 {
29 public:
30     void setP(int x, int y)
31     {
32         mP.setX(x);
33         mP.setY(y);
34     }
35     void setR(int r)
36     {
37         mR = r;
38     }
39     Point &getP()
40     {
41         return mP;
42     }
43     int getR()
44     {
45         return mR;
46     }
47     //判断点和圆的关系
48     void IsPointInCircle(Point & point)
49     {
50         int distance = (point.getX() - mP.getX())*(point.getX() - mP.getX()) + (point.getY() - mP.getY())*(point.getY() - mP.getY());
51         int radius = mR * mR;
52         if (distance<radius)
53         {
54             cout << "Point(" << point.getX() << "," << point.getY() << ")在圆内!" << endl;
55         }
56         else if (distance > radius)
57         {
58             cout << "Point(" << point.getX() << "," << point.getY() << ")在圆外!" << endl;
59         }
60         else
61         {
62             cout << "Point(" << point.getX() << "," << point.getY() << ")在圆上!" << endl;
63         }
64     }
65 private:
66     Point mP;
67     int mR;
68 };
69 void test1()
70 {
71     //实例化圆对象
72     Circle circle;
73     circle.setP(20, 20);
74     circle.setR(5);
75     //实例化点对象
76     Point point;
77     point.setX(25);
78     point.setY(20);
79 
80     circle.IsPointInCircle(point);
81 }
82 int main()
83 {
84     test1();
85     return 0;
86 }

 

posted @ 2021-03-13 18:11  丁帅帅dss  阅读(144)  评论(0)    收藏  举报