作业帮 > 综合 > 作业

C语言编程的题目,希望能尽快解决,

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 07:41:32
C语言编程的题目,希望能尽快解决,
Description
给出一个三角形三个点的坐标和它绕原点逆时针旋转的角度,以及沿x和y方向上平移的距离,求最后三角形各点的坐标.例如三角形A(0,0),B(2,0),C(0,4)的变换过程如下:绕原点逆时针旋转90度之后为再沿x轴右移一个单位所以最后的图形为A(1,0),B(1,2),C(-3,0).
Input
输入包括多组测试用例,第一行为一个数T,表示测试用例的个数.对于每组测试用例包括四行,第一行为三个整数r,h,k,分别表示三角形绕原点逆时针旋转的角度(只考虑90度的整数倍),沿x轴移动的距离,沿y轴移动的距离.接下来三行,每行两个数,分别表示三角形的三个点A、B、C的x,y坐标(保证输入是合法的).
Output
对于每组测试用例输出四行.第一行为Case #:其中#表示测试用例序号.接下来三行,每行两个数,分别表示变换之后的三角形的三个点A、B、C的x,y坐标,结果保留到小数点后两位.
Sample Input
Copy sample input to clipboard
1
180 -1 1
-2 1
-1 1
-1 3
Sample Output
Case 1:
1.00 0.00
0.00 0.00
0.00 -2.00
挺简单的,这里我主要告诉你算法.
例如:点(x,y)绕原点逆时针转a度角后的坐标是(L*sin(m+a),L*cos(m+a)),
其中L为原来的点(x,y)与坐标原点(0,0)的距离L=根号(x^2+y^2);
m为点(x,y)的相角,m=actan(y/x)(反正切),这里可能要修正一下,当x=0时y>0,m=90度,x=0,y