Java - Graficar un objeto trasladado

 
Vista:

Graficar un objeto trasladado

Publicado por Enrique (1 intervención) el 12/04/2020 05:49:55
Necesito su ayuda en un pequeño programa que estoy haciendo. Debo graficar un objeto y hacer una traslacion del mismo ; logre realizarlo pero tambien necesito graficar el sistema de ejes del objeto trasladado, que es en lo que estoy teniendo problemas. Me pueden decir como modificarlo y que codigo debo poner para que funcione de esa manera?

El programa grafica un objeto de acuerdo con una serie de puntos en un .txt (ARCHIVO ADJUNTO)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.Vector;
import java.io.*;
import java.util.*;
 
public class Mapa extends Frame
{
    Panel panelDatos;
    private BufferedReader entrada;
    private Vector<Point> vectorPuntos;
    private Vector<Point> vectorPuntos2;
    private StringTokenizer token;
 
    public Mapa(String titulo) throws IOException
    {
       super(titulo);
 
       panelDatos = new Panel();
       panelDatos.setLayout(new GridLayout(1,1));
 
       String c, x11, y11, x12, y12;
       vectorPuntos = new Vector<Point>();
       vectorPuntos2 = new Vector<Point>();
       try
       {
          entrada = new BufferedReader(new FileReader("puntos.txt")); //Bueffered Reader lee toda la cadena de 6 bites y los junta
       }catch( FileNotFoundException e)
       {
           System.out.println("El archivo no se encuentra");
       }
       try
       {
          while( (c = entrada.readLine()) != null )
          {
            int aum_x = 85;
            int aum_y = 50;
 
            token = new StringTokenizer(c, ",");
            x11 = token.nextToken();
            y11 = token.nextToken();
            vectorPuntos.add(new Point(Integer.parseInt(x11), -1*Integer.parseInt(y11)));
            vectorPuntos2.add(new Point((Integer.parseInt(x11)+aum_x), (-1*Integer.parseInt(y11))+aum_y));
          }
        }catch(IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
           if(entrada != null)
           {
                entrada.close();
           }
       }
       addWindowListener(new CierraVentana() );//para indicar que cuando se da click a la X se cierre la ventana
       setSize(910,560);
       setVisible(true);
    }
 
    private class CierraVentana extends WindowAdapter //todo esto sera encargado de esconder la ventana
    {
        public void windowClosing(WindowEvent e)
        {
            setVisible(false);
            dispose();
        }
    }
 
 
    public void paint(Graphics g)
    {
        int xc = getWidth() / 2;
        int yc = getHeight() / 2;
 
        int index = 0;
 
        //g.translate(100, 100);
        Graphics2D g2d = (Graphics2D)g;
        g2d.translate(xc, yc);//el origen se mueve al punto xc, yc
        g2d.scale(1, -1);
        g2d.setColor(Color.black);
        g2d.drawLine(0, -250, 0, 250);
        g2d.drawLine(-250, 0, 250, 0);
 
        //Este ciclo va a graficar punto por punto hasta que se trace la recta completa
        for(index = 0; index < vectorPuntos.size() - 1; index++ ) {
            g2d.setColor(Color.black);
            g2d.draw(new Line2D.Float(vectorPuntos.get(index), vectorPuntos.get(index + 1)));
            g2d.setColor(Color.red);
            g2d.draw(new Line2D.Float(vectorPuntos2.get(index), vectorPuntos2.get(index + 1)));
        }
 
 
    }
 
    public static void main(String[] args)
    {
        try
        {
            Mapa Mapa = new Mapa("Transformaciones Geometricas");
        }catch(IOException e)
        {
            e.printStackTrace();
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder