学习作业记录
本题目要实现平面点的二维几何变换,读入点的坐标,变换的类型和参数,然后输出变换后的几何坐标。
输入格式:
点的平面坐标成对出现, 两个数值之间以逗号隔开,数据类型为整型。变换类型以整型数字表示,1,2,3分别对应平移、缩放和旋转。平移参数为坐标对形式,中间以逗号隔开,数据类型为double类型。缩放两个参数以逗号隔开,类型double。旋转以角度表示旋转角度,正值为逆时针,负值代表顺时针,整型。
输出格式:
输出为旋转后的点的坐标,坐标对之间以逗号隔开,整型。
输入样例:
下面是一次平移变换的输入。例如:
5,7
1
1.2,2
输出样例:
在这里给出相应的输出。例如:
6,9
输入样例2:
下面是一次旋转变换的输入。例如:
1,0
3
90
输出样例2:
在这里给出相应的输出。例如:
0,1
import java.util.Scanner;
import static java.lang.Math.cos;
import static java.lang.Math.sin;
public class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
String str = sc.next();
int ch=sc.nextInt();
String [] s = str.split(",");
int x=Integer.parseInt(s[0]);
int y =Integer.parseInt(s[1]);
if(ch==1){
String str1 =sc.next();
String [] s1 = str1.split(",");
double x1=Double.parseDouble(s1[0]);
double y1=Double.parseDouble(s1[1]);
int a =(int)(x1+x);
int b =(int)(y1+y);
System.out.println(a+","+b);
}else if(ch==2){
String str2 =sc.next();
String [] s2 = str2.split(",");
double x2=Double.parseDouble(s2[0]);
double y2=Double.parseDouble(s2[1]);
int c =(int)(x2*x);
int d =(int)(y2*y);
System.out.println(c+","+d);
}else if(ch==3){
int w=sc.nextInt();
int e =(int)(x*cos(Math.toRadians(w))-y*sin(Math .toRadians(w)));
int f =(int)(y*cos(Math.toRadians(w))+x*sin(Math .toRadians(w)));
System.out.println(e+","+f);
}else
return;
}
}