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)
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();
}
}
}
- puntos.zip(2,0 KB)
Valora esta pregunta


0