#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
//点和圆的关系:点在圆内 点在圆外
class Point//点类
{
public:
void InitX(int x)
{
m_X = x;
}
void InitY(int y)
{
m_Y = y;
}
int GetX()
{
return m_X;
}
int GetY()
{
return m_Y;
}
private:
int m_X;//坐标X
int m_Y;//坐标Y
};
class Circle//圆类
{
public:
void InitCenter(Point ¢er)
{
m_Center = center;
}
void InitR(int r)
{
m_R = r;
}
Point GetCenter()
{
return m_Center;
}
int GetR()
{
return m_R;
}
void IsInCircle02(Point &point)//利用对象成员函数函数判断点和圆的关系
{
int Distance = (m_Center.GetX()- point.GetX()) * (m_Center.GetX() - point.GetX()) + (m_Center.GetY() - point.GetY()) * (m_Center.GetY() - point.GetY());
int DistanceR = m_R * m_R;
if (Distance < DistanceR)
{
cout << "点在圆内*" << endl;
}
else if (Distance == DistanceR)
{
cout << "点在圆上*" << endl;
}
else
{
cout << "点在圆外*" << endl;
}
}
private:
Point m_Center;//坐标X
int m_R;//半径R
};
void IsInCicle01(Circle& circle, Point& point)//利用全局函数判断点和圆的关系
{
int Distance = (circle.GetCenter().GetX()- point.GetX())* (circle.GetCenter().GetX() - point.GetX())+ (circle.GetCenter().GetY() - point.GetY()) * (circle.GetCenter().GetY() - point.GetY());
int DistanceR = circle.GetR() * circle.GetR();
if (Distance < DistanceR)
{
cout << "点在圆内" << endl;
}
else if(Distance == DistanceR)
{
cout << "点在圆上" << endl;
}
else
{
cout << "点在圆外" << endl;
}
}
void test01()
{
Point A;
Point B;
Circle C;
A.InitX(10);
A.InitY(10);
B.InitX(10);
B.InitY(10);
C.InitCenter(B);
C.InitR(10);
IsInCicle01(C , A);
C.IsInCircle02(A);
}
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}
C++基础学习DAY3-02点和圆的关系
最新推荐文章于 2024-07-10 10:45:37 发布