设计一个圆类,该类具有圆点坐标及半径属性 定义一个Relation函数评断两个圆之间的位置关系.(外离,外切,相交,内切,内含) (2)在主函数定义一个有三个元素的圆类对象数组,并进行初始
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 08:16:23
设计一个圆类,该类具有圆点坐标及半径属性 定义一个Relation函数评断两个圆之间的位置关系.(外离,外切,相交,内切,内含) (2)在主函数定义一个有三个元素的圆类对象数组,并进行初始
设计一个圆类,该类具有圆点坐标及半径属性 定义一个Relation函数评断两个圆之间的位置关系.(外离,外
切,相交,内切,内含)
(2)在主函数定义一个有三个元素的圆类对象数组,并进行初始化.
(3)在主函数调用Relation函数判断三个圆之间的关系,并输出.
设计一个圆类,该类具有圆点坐标及半径属性 定义一个Relation函数评断两个圆之间的位置关系.(外离,外切,相交,内切,内含) (2)在主函数定义一个有三个元素的圆类对象数组,并进行初始
#include "iostream"
#include "cmath"
using namespace std;
class Circle
{
public:
Circle(double x=0,double y=0,double r=0);
friend void Relation(Circle c1,Circle c2);
private:
double x,y,r;
};
Circle::Circle(double x,double y,double r)
{
this->x=x;
this->y=y;
this->r=r;
}
void Relation(Circle c1,Circle c2)
{
double pToP;
double twoR1;
double twoR2;
pToP=sqrt(pow(c1.x-c2.x,2)+pow(c1.y-c2.y,2)); //圆心距
twoR1=c1.r+c2.r; //两圆半径和
twoR2=fabs(c1.r-c2.r); //两圆半径差的绝对值
if(pToP==twoR1)
cout<<"两圆外切"<<endl;
else if(pToP>twoR1)
cout<<"两圆外离"<<endl;
else if(pToP==twoR2)
cout<<"两圆内切"<<endl;
else if(pToP>twoR2 && pToP<twoR1)
cout<<"两圆相交"<<endl;
else if(pToP<twoR2)
cout<<"两圆内含"<<endl;
}
int main()
{
Circle c1(1,2,3),c2(1,0,4),c3(0,2,4);
Circle c[3]={c1,c2,c3};
Relation(c[0],c[1]);
Relation(c[1],c[2]);
Relation(c[2],c[0]);
}