点和圆的关系
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 }
道阻且长,行则将至