求圆与点的位置关系
class point
{
public:
//设置x
void setX(int x)
{
m_x = x;
}
//读取x
int getX()
{
return m_x;
}
//设置y
void setY(int y)
{
m_y = y;
}
//读取y
int getY()
{
return m_y;
}
private:
int m_x;
int m_y;
};
class circle
{
public:
//设置半径
void setR(int r)
{
m_r = r;
}
//读取半径
int getR()
{
return m_r;
}
//设置圆点
void setzero(point zero)
{
m_zero = zero;
}
point getzero()
{
return m_zero;
}
private:
int m_r;
point m_zero;
};
//位置函数
void locate(circle& c, point& p)
{
//计算两点之间距离
int L = (c.getzero().getX() - p.getX()) * (c.getzero().getX() - p.getX()) + (c.getzero().getY() - p.getY()) * (c.getzero().getY() - p.getY());
int rr = c.getR() * c.getR();
//比较关系
if (L > rr)
{
cout << "圆外" << endl;
}
else if (L == rr)
{
cout << "圆上" << endl;
}
else
{
cout << "圆内" << endl;
}
}
int main() {//主函数返回值为整型
//设置点坐标
point p;
p.setX(10);
p.setX(10);
//设置圆参数
circle c;
c.setR(20);
//独立对圆心进行设置
point zero;
zero.setX(12);
zero.setY(12);
//将圆心坐标载入圆中
c.setzero(zero);
//运行位置函数
locate(c, p);
system("pause");//暂停系统命令
return 0;//退出程序
}
如果将类独立放在一个文件夹中:
point头文件
#pragma once//防止重复调用
#include <iostream>
using namespace std;
class point
{
public:
//设置x
void setX(int x);
//读取x
int getX();
//设置y
void setY(int y);
//读取y
int getY();
private:
int m_x;
int m_y;
};
point源文件
#include "point.h"
//设置x
void point::setX(int x)
{
m_x = x;
}
//读取x
int point::getX()
{
return m_x;
}
//设置y
void point::setY(int y)
{
m_y = y;
}
//读取y
int point::getY()
{
return m_y;
}
circle头文件
#pragma once
#include<iostream>
using namespace std;
#include "point.h"
class circle
{
public:
//设置半径
void setR(int r);
//读取半径
int getR();
//设置圆点
void setzero(point zero);
private:
int m_r;
point m_zero;
};
circle源文件
#include "circle.h"
//设置半径
void circle::setR(int r)
{
m_r = r;
}
//读取半径
int circle::getR()
{
return m_r;
}
//设置圆点
void circle::setzero(point zero)
{
m_zero = zero;
}
point circle::getzero()
{
return m_zero;
}
主函数文件
#include<iostream>
using namespace std;
#include"point.h"
#include "circle.h"
//位置函数
void locate(circle& c, point& p)
{
//计算两点之间距离
int L = (c.getzero().getX() - p.getX()) * (c.getzero().getX() - p.getX()) + (c.getzero().getY() - p.getY()) * (c.getzero().getY() - p.getY());
int rr = c.getR() * c.getR();
//比较关系
if (L > rr)
{
cout << "圆外" << endl;
}
else if (L == rr)
{
cout << "圆上" << endl;
}
else
{
cout << "圆内" << endl;
}
}
int main() {//主函数返回值为整型
//设置点坐标
point p;
p.setX(10);
p.setX(10);
//设置圆参数
circle c;
c.setR(20);
//独立对圆心进行设置
point zero;
zero.setX(12);
zero.setY(12);
//将圆心坐标载入圆中
c.setzero(zero);
//运行位置函数
locate(c, p);
system("pause");//暂停系统命令
return 0;//退出程序
}