图片摘自:
黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1et411b73Z?p=105
?点和圆的关系就三种,圆上,圆外,圆内
首先创建一个圆类
class Circle
{
public:
void setR(int r)
{
m_R = r;
}
int getR()
{
return m_R;
}
void setCenter(Point center)
{
m_Center = center;
}
Point getCenter() //这块为什么返回的不是int类型呢 下面说了这个圆心的类型是圆类
{ //就像你定义一个int的东西 ,你准备拿char来接收
return m_Center; //实在理解不了的直接理解为结构体就好 类似于结构体定义的数据类型
}
private:
int m_R;
Point m_Center; //圆心的类型是圆类
};
创建圆心类
class Point //属性一般私有 同时提供端口函数对属性操作
{
public:
void setX(int x)
{
m_X = x;
}
int getX()
{
return m_X;
}
void setY(int y)
{
m_Y = y;
}
int getY()
{
return m_Y;
}
private:
int m_X;
int m_Y;
};
判断函数:
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 rDistance = c.getR() * c.getR();
if (distance == rDistance)
{
cout << "点在圆上" << endl;
}
else if (distance > rDistance)
{
cout << "点在圆外" << endl;
}
else
{
cout << "点在圆内" << endl;
}
}
附上主函数:
int main()
{
Circle c;
c.setR(10); //定义半径
Point center;
center.setX(0); //定义圆心
center.setY(0);
c.setCenter(center);
Point p;
p.setX(10); //定义需要计算的点
p.setY(0);
isInCircle(c,p);
system("pause");
return 0;
}
开拓视野,冲破艰险,看见世界,身临其境,贴近彼此,感受生活,这就是生活的目的
|