Código de Java - Animación de un rectangulo en 2D

Imágen de perfil

Animación de un rectangulo en 2Dgráfica de visualizaciones


Java

Publicado el 8 de Febrero del 2013 por Administrador
11.865 visualizaciones desde el 8 de Febrero del 2013
Código que muestra una simple animación en 2D utilizando la librería Graphics y Rectangle.

Versión 1

Publicado el 8 de Febrero del 2013gráfica de visualizaciones de la versión: Versión 1
11.866 visualizaciones desde el 8 de Febrero del 2013
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella


Forma parte de java2s.com
 
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
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
 
public class SwingTimerBasedAnimationScaleRotate extends JPanel implements ActionListener
{
    Timer timer;
    private double angle = 0;
    private double scale = 1;
    private double delta = 0.01;
    Rectangle.Float r = new Rectangle.Float(50, 50, 200, 200);
 
    public SwingTimerBasedAnimationScaleRotate()
    {
        timer = new Timer(20, this);
        timer.start();
    }
 
    public void paint(Graphics g)
    {
        int h = getHeight();
        int w = getWidth();
 
        Graphics2D g2d = (Graphics2D) g;
 
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 
        g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
 
        g2d.translate(w / 2, h / 2);
        g2d.rotate(angle);
        g2d.scale(scale, scale);
 
        g2d.fill(r);
    }
 
    public static void main(String[] args)
    {
        // Creamos la ventana
        JFrame frame = new JFrame("Moving star");
        frame.add(new SwingTimerBasedAnimationScaleRotate());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(420, 250);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
 
    public void actionPerformed(ActionEvent e)
    {
        if (scale < 0.01) {
        delta = -delta;
        } else if (scale > 0.99) {
        delta = -delta;
        }
 
        scale += delta;
        angle += 0.01;
 
        repaint();
    }
}



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2297