C++:如何编写一个直线类Line(直线方程ax+by+c=0)?

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:35:02
要求:有一个显示数据成员的disp成员函数,一个用于计算两条直线交点的友元函数setpoint。要求考虑两条直线平行时可抛出异常并进行处理。
答案满意的话追加100分!绝不食言!

如果要设置线的颜色,宽度类型等就要新建一个画笔
CPen(线型,线宽,颜色)
你可以设置一个对话框,让用户将数据输入线型,线宽,颜色等数据,然后传入新的画笔当中,
颜色选取的话要用到CColorDialog类,调用GetColor( )函数返回一个颜色

#include <iostream>
#include <cmath>
using namespace std;
class line
{
double a,b,c;
public:
line(double x,double y,double z):a(x),b(y),c(z){}
void disp()
{
cout<<"a="<<a<<'\t';
cout<<"b="<<b<<'\t';
cout<<"c="<<c<<endl;
}
friend int setpoint(line &l1,line &l2);
};
int setpoint(line & l1,line &l2)
{
double X,Y;
X=(l2.c*l1.b-l1.c*l2.b)/(l1.a*l2.b-l2.a*l1.b);
Y=(l2.a*l1.c-l1.a*l2.c)/(l1.a*l2.b-l2.a*l1.b);
try
{
if(l1.a/l1.b==l2.a/l2.b)
throw 1;
if(sqrt(X*X+Y*Y)>=pow(10,8))
throw 0.1;
cout<<"交点坐标X="<<X<<