根据线性代数32页:编写的,任意1点坐标绕某一点坐标逆时针旋转degree度,可用公式:
{x=x1*cos(degree)-y1*sin(degree);
}y=x1*sin(degree)+y1*sin(degree);
很方便;
#include<math.h>
#include<stdio.h>
#define pi 2*acos(0)
int main()
{
int i,j,k,m,n;
double x,y,x1,y1,degree,x2,y2,r;
while(scanf("%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,°ree)!=EOF)
{
//printf("%lf",pi);
x=x2-x1;
y=y2-y1;
x2=x*cos((degree/180.0)*pi)-y*sin(degree/180*pi);
//printf("%lf %lf",cos((degree/180.0)*pi),sin(degree/180*pi));
//printf("%.5lf\n",cos(degree/180*pi));
y2=x*sin(degree/180*pi)+y*cos(degree/180*pi);
printf("%.1lf %.1lf\n",x2+x1,y2+y1);
}
return 0;
}
本文介绍了一个简单的算法,用于实现平面内任意一点绕另一点逆时针旋转特定角度后的坐标计算。该算法基于线性代数原理,通过使用三角函数sin和cos实现了坐标转换,并提供了完整的C语言代码示例。
1138

被折叠的 条评论
为什么被折叠?



