Implementado usando una matriz plana de punto de transformación geométrica

Aprender registro de trabajo

El plano dimensional título para lograr punto de transformación geométrica, la lectura de las coordenadas de puntos, y el tipo de parámetros de transformación, y luego da salida a la transformada geometría de coordenadas.

Formatos de entrada:

coordenadas plano de los pares de puntos, separados por una coma entre dos valores, tipos de datos son entero. Transformar tipo representado como un número entero, que corresponde 1,2,3 traducción, escala y rotación. parámetro de traducción de coordenadas forma, separados por comas, el tipo de datos es doble. Dos parámetros de escala separados por comas, de tipo doble. El ángulo de rotación de ángulo de rotación, positivo en sentido antihorario, los valores negativos indican número entero agujas del reloj.

Los formatos de salida:

Salida del punto de coordenadas después de la rotación, entre un par de coordenadas separados por comas, int.

de entrada de la muestra:

La siguiente es una traducción transformar insumos. Por ejemplo:
5,7
1
1.2,2

Resultado de muestra:

Teniendo en cuenta aquí de salida correspondiente. Por ejemplo:
6,9

Ejemplo de entrada 2:

La siguiente es una transformación de entrada de rotación. Por ejemplo:
1,0
. 3
90

Muestra Producto 2:

Teniendo en cuenta aquí de salida correspondiente. Por ejemplo:
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;
    }
}

J77
Publicado siete artículos originales · ganado elogios 2 · Vistas 100

Supongo que te gusta

Origin blog.csdn.net/weixin_46053704/article/details/105393166
Recomendado
Clasificación