#include<stdlib.h>
#include<math.h>
#define pi 3.1415926
struct point
{
double X;
double Y;
};
struct line
{
point A;
point B;
double deg;
};
int main( )
{
line lineA;
line lineB;
double tmp;
printf("請輸點坐標(x,y)構造第壹條直線\n");
printf("第壹點x與y:");
scanf( "%lf%lf", &lineA.A.X, &lineA.A.Y );
printf("第二點x與y:");
scanf( "%lf%lf", &lineA.B.X, &lineA.B.Y );
//求角度
tmp=(lineA.B.Y-lineA.A.Y)/(lineA.B.X-lineA.A.X);
lineA.deg=atan(tmp);
lineA.deg=lineA.deg*double(180)/pi;
printf( "第壹條直線斜線角度:%lf,%lf\n", tmp,lineA.deg );
printf("請輸點坐標(x,y)構造第二條直線\n");
printf("第壹點x與y:");
scanf( "%lf%lf", &lineB.A.X, &lineB.A.Y );
printf("第二點x與y:");
scanf( "%lf%lf", &lineB.B.X, &lineB.B.Y );
//求角度
tmp=(lineB.B.Y-lineB.A.Y)/(lineB.B.X-lineB.A.X);
lineB.deg=atan(tmp);
lineB.deg=lineB.deg*double(180)/pi;
printf( "第二條直線斜線角度:%lf,%lf\n", tmp,lineB.deg );
printf( "兩條直線角度差:%lf\n", lineA.deg-lineB.deg );
return 0;
}
/*
atan等三角函數算出來的是pi形式的,看看45度的:
printf("%f\n",tan(double(45)/double(180)*pi));
printf("%f\n",atan(1)*double(180)/pi);
寫的真累,看妳題目是C語言,所以沒用C++類來寫
用類來寫,又好寫,又好讀,又不容易出錯
point點(x,y)其實可以直接用COORD,又怕妳沒有數據結構COORD
比如:
struct line
{
point A;
point B;
double deg;
};
改成
struct line
{
COORD dian; //COORD編譯器數據結構dian有dian.X和dian.Y
double deg;
};
*/