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 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15107020.html