创建圆和点的类,来根据两点距离公式判断点和圆的关系。
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<string>
#include <GL/glut.h>
#define MAX 1000
//#define PI 3.14
using namespace std;
//利用类判断点和圆的关系
//需求: 点到圆心距离 == 圆的半径 点在圆上
// 点到圆心距离 < 圆的半径 点在园内
// 点到圆心距离 > 圆的半径 点在圆外
// 点到圆心距离公式 根号下 (x1-x2)^2 +(y1-y2)^2
class Point
{
public:
//设置、获取x,y坐标
void setx(int x)
{
P_x = x;
}
int getx()
{
return P_x;
}
void sety(int y)
{
P_y = y;
}
int gety()
{
return P_y;
}
private:
int P_x;
int P_y;
};
class Circle
{
public:
//设置、获取半径、圆心坐标
void setr(int r)
{
C_r = r;
}
int getr()
{
return C_r;
}
void setcenter(Point center)
{
C_center = center;
}
Point getcenter()
{
return C_center;
}
private:
int C_r;
Point C_center;
};
void isIncircle(Circle& c, Point& p)
{
//计算两点距离
int distance = (c.getcenter().getx() - p.getx()) * (c.getcenter().getx() - p.getx()) +
(c.getcenter().gety() - p.gety()) * (c.getcenter().gety() - p.gety());
//计算半径的平方
int rrr = c.getr() * c.getr();
if (rrr > distance)
{
cout << "点在圆内" << endl;
}
if (rrr < distance)
{
cout << "点在圆外" << endl;
}
if (rrr == distance)
{
cout << "点在圆上" << endl;
}
}
int main()
{
//创建圆
Circle c;
c.setr(10);
Point center;
center.setx(10);
center.sety(0);
c.setcenter(center);
//创建点
Point p;
p.setx(0);
p.sety(0);
isIncircle(c, p);
}
1413

被折叠的 条评论
为什么被折叠?



