當前位置:編程學習大全網 - 編程軟體 - C++編程 定義壹個由y=ax+b確定的直線類Line

C++編程 定義壹個由y=ax+b確定的直線類Line

#define EPS 1E-8

class Point { // 點 類

public:

float x;

float y;

Point(float a,float b){x=a;y=b;}

Point(){x=0.0;y=0.0;}

Set(float a,float b){x=a;y=b;}

}

class Line { // y= ax + b 直線類

public:

float a; // 斜率

float b; // 截距

Line(float ac,float bc){a=ac;b=bc;} // 構造函數

Line(){a=0;b=0;}; // 無參構造函數 y=0

~Line(){}; // 析構

void Set(ac,bc){a=ac,b=bc}; //設定 直線 y=ax+b

void print(){ // 輸出直線方程

if(a!=0){

cout<<"y="<<a<<"x";

if(b<0)cout<<b;

if(b>0)<<"+"<<b;

cout<<endl;

}else{

cout<<b<<endl;

}

}

float y(float x){return a*x+b;} // 計算已知x點的函數值

bool setpoint(Line B,Point * P){ // 求直線 B 與 本直線交點

// * P 返回交點坐標

if(this->a-B.a<EPS){ // 兩直線平行 或 重合 返回

// 函數返回值 假

return false;

}

P->x=-(this->b-B.b)/(this->a-B.a); //交點 x坐標

p->y=this->y(P->x); //交點 y坐標

}

return true; //函數返回值 真

}

//y=ax+b 不能表示所有的直線,垂直線x=a無法表示。

//如果用Ax+By+C=0則可以表示所有直線

  • 上一篇:計算機軟件打開顯示修改。
  • 下一篇:jsp是什麽 初探jsp技術?
  • copyright 2024編程學習大全網