elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  mover graphics en java sin hilos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: mover graphics en java sin hilos  (Leído 5,978 veces)
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
mover graphics en java sin hilos
« en: 17 Diciembre 2015, 14:33 pm »

Código
  1. public void paint(Graphics g) {
  2.  
  3.        for (int i = 0; i < 500; i++) {
  4.  
  5.            try {
  6.                g.setColor(Color.WHITE);
  7.                g.fillRect(0, 0, this.getWidth(), this.getHeight());
  8.                Thread.sleep(30);
  9.  
  10.                g.setColor(Color.RED);
  11.                g.fillRect(i, 350, 50, 50);
  12.            } catch (InterruptedException ex) {
  13.                Logger.getLogger(Lienzo.class.getName()).log(Level.SEVERE, null, ex);
  14.            }
  15.  
  16.        }

hice este codigo ya muy conocido, pero no logro mover el cuadrado en tiempo de ejecucion

no quiero utilizar hilos


En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: mover graphics en java sin hilos
« Respuesta #1 en: 17 Diciembre 2015, 14:51 pm »

Recuerda llamar al método repaint para actualizar el Frame.


En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: mover graphics en java sin hilos
« Respuesta #2 en: 17 Diciembre 2015, 16:17 pm »

en que parte debo llamar al repaint?
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: mover graphics en java sin hilos
« Respuesta #3 en: 17 Diciembre 2015, 20:07 pm »

En tu caso sería después de cada iteración porque es cuando la posición del rectángulo cambia.
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: mover graphics en java sin hilos
« Respuesta #4 en: 17 Diciembre 2015, 21:22 pm »

te animarias a ayudarme a hacer un juego ?
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: mover graphics en java sin hilos
« Respuesta #5 en: 17 Diciembre 2015, 21:52 pm »

Si, pero publica en el foro tus dudas.
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: mover graphics en java sin hilos
« Respuesta #6 en: 17 Diciembre 2015, 22:08 pm »

dibuje una circunferencia estatica, ahora pretengo moverla pero utilizando el algoritmo bresenham

hice este codigo pero lo que hace es agrandar la circunferencia, pero yo prentendo mover con el mismo tamano

public void drawLineQuadrantOneO(Graphics g, int x0, int y0, int x1, int y1, int value) {
        int dx, dy, de, dne, d, x, y;
        dx = x1 - x0;
        dy = y1 - y0;
        d = 2 + dy - dx;

        de = 2 * dy;
        dne = 2 * (dy - dx);
        x = x0;
        y = y0;

        Circulo.MidPointCircle(g, x, y);

        while (x < x1) {
            if (d <= 0) {
                d = d + de;
                x = x + 1;
            } else {
                d = d + dne;
                x = x + 1;
                y = y + 1;
            }
            Circulo.MidPointCircle(g, x, y);
        }
    }

como moveria con el algoritmo bresenham?
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: mover graphics en java sin hilos
« Respuesta #7 en: 17 Diciembre 2015, 23:04 pm »

No conozco ese algoritmo, así que tampoco entiendo bien tu pregunta. Teniendo eso en cuenta para mover lo que quieres simplemente tienes que mover todos los puntos( o lo que sea) que dibujes al mismo tiempo. si dibujas dos puntos entonces han de tener una coordenada en x,y pues súmele un valor equivalente a las coordenadas de ambos puntos.
« Última modificación: 17 Diciembre 2015, 23:06 pm por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: mover graphics en java sin hilos
« Respuesta #8 en: 17 Diciembre 2015, 23:42 pm »

https://es.wikipedia.org/wiki/Algoritmo_de_Bresenham



ese es el algoritmo

pero lo quiero utilizar para mover
En línea

bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: mover graphics en java sin hilos
« Respuesta #9 en: 21 Diciembre 2015, 16:17 pm »

este es mi codigo, pero no logro hacer mover el punto en tiempo de ejecucion ayuda, lo que hace es mostrar el ultimo pixel dibujado.

lo que yo pretendo hacer es que el pixel simule que avance, mi idea es la siguiente:
dibujo un punto
pasa 3 milesegundos y borro
dibujo el punto siguiente
 pasa 3 milesegundos y borro
y asi sucesivamente hasta que llegue al punto final
entonces yo quiero mostrar todo y no solamente el punto final dibujado

clase punto es el que dibuja el punto
Código
  1. public class Point {
  2.  
  3.    public static void putPixel(Graphics g2, int x, int y) {
  4.        Graphics2D g = (Graphics2D)g2;
  5.        g.setColor(Color.white);
  6.        g.drawLine(x, y, x, y);
  7.    }
  8. }

Código
  1. package program;
  2. import javax.swing.*;
  3. import dimension1.Point;
  4. import java.awt.*;
  5.  
  6. class AnimationFrame extends JPanel {
  7.  
  8.  
  9.    public AnimationFrame() {
  10.        setPreferredSize(new Dimension(500, 500));
  11.    }
  12.  
  13.    public void runAnimation() {
  14.        repaint();
  15.    }
  16.  
  17.    @Override
  18.    public void paint(Graphics g) {
  19.  
  20.        drawLineQuadrantOneO(g, 100,20,300 ,50, 10000);
  21.  
  22.    }
  23.  
  24.    public void drawLineQuadrantOneO(Graphics g, int x0, int y0, int x1, int y1, int value) {
  25.        int dx, dy, de, dne, d, x, y;
  26.        dx = x1 - x0;
  27.        dy = y1 - y0;
  28.        d = 2 + dy - dx;
  29.        Rectangle clip = g.getClipBounds();
  30.        de = 2 * dy;
  31.        dne = 2 * (dy - dx);
  32.        x = x0;
  33.        y = y0;
  34.        Point.putPixel(g, x, y);
  35.        //Circulo.MidPointCircle(g, 10, y);
  36.  
  37.        while (x < x1) {
  38.            if (d <= 0) {
  39.                d = d + de;
  40.                x = x + 1;
  41.            } else {
  42.                d = d + dne;
  43.                x = x + 1;
  44.                y = y + 1;
  45.            }
  46.            g.setColor(Color.BLACK);
  47.            g.fillRect(clip.x, clip.y, clip.width, clip.height);
  48.            try {
  49.                Thread.sleep(3);
  50.            } catch (InterruptedException ex) {
  51.                Logger.getLogger(AnimationFrame.class.getName()).log(Level.SEVERE, null, ex);
  52.            }
  53.            g.setColor(Color.white);
  54.            Point.putPixel(g, x, y);
  55.            //Circulo.MidPointCircle(g, 10, y);
  56.            //repaint();
  57.        }
  58.    }
  59.  
  60.    public static void main(String[] args) {
  61.        JFrame mainFrame = new JFrame();
  62.        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  63.        AnimationFrame animationPanel = new AnimationFrame();
  64.        mainFrame.add(animationPanel);
  65.        mainFrame.pack();
  66.        mainFrame.setVisible(true);
  67.        animationPanel.runAnimation();
  68.    }
  69.  
  70. }
« Última modificación: 21 Diciembre 2015, 21:54 pm por DeviiAC » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Trabajar con Hilos en JAVA.
Java
joseprox 4 6,249 Último mensaje 19 Noviembre 2008, 15:28 pm
por Amerikano|Cls
Problemas con HILOS en Java
Java
Skeletron 1 6,460 Último mensaje 10 Septiembre 2009, 23:42 pm
por egyware
Dibujar un engranaje en java con Graphics
Java
meyinkin 1 5,667 Último mensaje 2 Diciembre 2009, 16:02 pm
por Leyer
programación con hilos en java
Programación General
sonic94 1 2,382 Último mensaje 18 Mayo 2014, 22:15 pm
por juanxo1988
problema con graphics java « 1 2 3 »
Java
bengy 21 9,546 Último mensaje 15 Enero 2016, 02:56 am
por 0xFer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines