當前位置:編程學習大全網 - 編程語言 - 高分求 編程 c語言 已知2點求角度

高分求 編程 c語言 已知2點求角度

#include<stdio.h>

#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;

};

*/

  • 上一篇:女士毛線帽子編織花樣及編織方法
  • 下一篇:求三菱,FANUC系統操作說明書,報警,參數,PLC全部詳細!謝謝了!
  • copyright 2024編程學習大全網