当前位置:首页 » 编程语言 » 坐标反算象限角编程c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

坐标反算象限角编程c语言

发布时间: 2022-06-28 20:26:29

A. 高分求 编程 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;
};
*/

B. 用C语言编写程序,判断输入的二维点在第几象限(易懂的)

if(xy>0)
{
if(x>0)
printf("第一象限");
else
printf("第三象限");

}
else if(xy<0)
{
if(x>0)

printf("第二象限");

else

printf("第四象限");

}
else
printf("坐标轴上");

C. 大哥 坐标反算后的结果与象限角是什么关系 又怎样把反算的结果换算成正确的坐标方位角哪

设反算的结果为a,a=arctan(dy/dx),其中dy=y2-y1,dx=x2-x1.
若dy>0,dx>0,说明角在第一象限,坐标方位角b=a.
若dy<0,dx>0,说明角在第二象限,坐标方位角b=a+180.
若dy<0,dx<0,说明角在第三象限,坐标方位角b=a+180.
若dy>0,dx<0,说明角在第四象限,坐标方位角b=a+360.

D. 编程 输入一平面坐标点(x,y),判断并输出该坐标点位于哪个象限c语言

#include<stdio.h>

int x,y;
char *output[20];
int p;

void main(){
printf("请输入一个坐标如:3,3\n");
while(scanf("%d,%d",&x,&y)!=EOF)
{

if(x > 0 && y > 0)
p=1;
else if(x > 0 && y < 0)
p=4;
else if(x < 0 && y > 0)
p=2;
else if(x < 0 && y < 0)
p=3;

switch(p){
case 1:*output = "第一象限\n";break;
case 4:*output = "第四象限\n";break;
case 2:*output = "第二象限\n";break;
case 3:*output = "第三象限\n";break;
}
printf("%s",*output);
}
}