# include<iostream>
#include<ctime>
#include<cstdlib>
#include"swap.h"
#include<string>
using namespace std;
//结构体有结构体的嵌套。类有类的嵌套,点类的属性有横坐标,纵坐标,圆类的属性有圆心的坐标,半径
//设计点类
class point {
public :
void setx(int x1){
x = x1;
}
void sety(int y1) {
y = y1;
}
int getx() {
return x;
}
int gety() {
return y;
}
private:
int x;
int y;
};
class circle {
public:
void setr(int r) {
c_r = r;
}
void setpoint(point center) {
c = center;
}
point getpoint() {
return c;
}
int getr(){
return c_r;
}
private:
point c;
int c_r;
};
void panduan(point &A, circle &B) {
if ((A.getx() - B.getpoint().getx())*((A.getx() - B.getpoint().getx()) + (A.gety() - B.getpoint().gety())*(A.gety() - B.getpoint().gety()))==B.getr()*B.getr()){
cout << "点在圆上" << endl;
}
else if ((A.getx() - B.getpoint().getx())*((A.getx() - B.getpoint().getx()) + (A.gety() - B.getpoint().gety())*(A.gety() - B.getpoint().gety())) > B.getr()*B.getr()) {
cout << "点在圆外" << endl;
}
else {
cout << "点在圆内" << endl;
}
}
int main() {
//创建点
point c1;
c1.setx(0);
c1.sety(0);
point c3;
c3.setx(0);
c3.sety(0);
//创建圆
circle c2;
c2.setr(2);
c2.setpoint( c3);
panduan(c1, c2);
system("pause");
return 0;
}
判断点与圆的关系
最新推荐文章于 2024-06-15 16:46:40 发布