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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Graficos 3D
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Graficos 3D  (Leído 6,571 veces)
Tlecoatl

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Graficos 3D
« en: 25 Abril 2011, 06:04 am »

Buen dia... pues les comento que en la universidad me pidieron hacer un programa que muestre figuras 3D, pero todo realizarlo en Java 2D y no tengo ni minina idea de como poner en el plano cartesiano la coordenada z.....

Antes de ese programa, encargaron otro pero en J2ME y ese pedia el manejo de graficos a 2D...tengo varias clases como por ejemplo la clase punto, figura, y algunas clases que dibujan figuras geometricas (pienso usarlas de base).. ejemplo...

Código:
public class Cuadrado extends Figura {

    public Cuadrado() {
        puntos.addElement(new Punto(0, 0));
        puntos.addElement(new Punto(20, 0));
        puntos.addElement(new Punto(20, 20));
        puntos.addElement(new Punto(0, 20));
    }

    public void dibujar(Graphics g) {
        g.setColor(0, 0, 0);

        for (int i = 1; i < puntos.size(); i++) {
            Punto x = (Punto) puntos.elementAt(i);
            Punto y = (Punto) puntos.elementAt(i - 1);
            g.drawLine(x.getX(), (x.getY())*-1, y.getX(), (y.getY())*-1);
        }
        Punto x = (Punto) puntos.elementAt(puntos.size()-1);
        Punto y = (Punto) puntos.elementAt(0);
        g.drawLine(x.getX(), (x.getY())*-1, y.getX(), (y.getY())*-1);

    }
}

Y una clase que extiende de Canvas en la cual hago el plano cartesiano (dos lineas que cruzan la pantalla)

Mi pregunta es ¿En java 2D es posible usarlo de esta misma manera?
¿De que forma puedo darle la "profundidad"? En mi cabeza no tengo ideas de como hacerlo....osea...¿como formar el plano x,y,z para poder graficar, por ejemplo, un cubo?

De antemano muchas gracias por su pronta respuesta =)


« Última modificación: 25 Abril 2011, 06:12 am por Tlecoatl » En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Graficos 3D
« Respuesta #1 en: 26 Abril 2011, 08:01 am »

Mmmm la única forma que se me ocurre, es haciendo, como cuando dibujas un cubo en un papel, tienes aspecto tridimensional pero es un poco placebo...

Saludos


En línea

Tlecoatl

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Graficos 3D
« Respuesta #2 en: 30 Abril 2011, 23:23 pm »

Muchas gracias =)
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Graficos 3D
« Respuesta #3 en: 1 Mayo 2011, 05:42 am »

Hola qué tal.

Puedes hacerlo así.

Código
  1. import java.awt.Color;
  2. import java.awt.geom.GeneralPath;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import javax.swing.JPanel;
  6.  
  7. public class CubeJPanel extends JPanel {
  8.  
  9. // draw cube
  10. public void paintComponent( Graphics g ) {
  11. super.paintComponent( g );
  12.  
  13. // one base
  14. int base1X[] = { 100, 100, 200, 200, 100 };
  15. int base1Y[] = { 100, 200, 200, 100, 100 };
  16.  
  17. // second base
  18. int base2X[] = { 75, 75, 175, 175, 75 };
  19. int base2Y[] = { 75, 175, 175 ,75, 75 };
  20.  
  21. Graphics2D g2d = ( Graphics2D ) g;
  22. g2d.setColor( Color.red );
  23.  
  24. GeneralPath cube = new GeneralPath();
  25.  
  26. // create path for the cube
  27. for ( int i = 1; i <= 4; i++ ) {
  28. // create the first base
  29. cube.moveTo( base1X[ i - 1 ], base1Y[ i - 1 ] );
  30. cube.lineTo( base1X[ i ], base1Y[ i ] );
  31.  
  32. // create the second base
  33. cube.moveTo( base2X[ i - 1 ], base2Y[ i - 1 ] );
  34. cube.lineTo( base2X[ i ], base2Y[ i ] );
  35.  
  36. // create the lines between the bases
  37. cube.moveTo( base1X[ i ], base1Y[ i ] );
  38. cube.lineTo( base2X[ i ], base2Y[ i ] );
  39. } // end for
  40.  
  41. g2d.draw( cube );
  42. } // end method paintComponent
  43. } // end class CubeJPanel
  44.  

Código
  1. import javax.swing.JFrame;
  2.  
  3. public class Cube {
  4.  
  5. public static void main( String args[] ) {
  6. // create frame for CubeJPanel
  7. JFrame frame = new JFrame( "Cube" );
  8. frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
  9. CubeJPanel cubeJPanel = new CubeJPanel();
  10. frame.add( cubeJPanel ); // add cubeJPanel to frame
  11. frame.setSize( 250, 270 ); // set frame size
  12. frame.setVisible( true ); // display frame
  13. } // end main
  14. } // end class Cube
  15.  

Este código no es mio, pero tampoco se quien es el autor xD

Espero te sirva.

Saludos.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Graficos
Programación Visual Basic
zerofive 9 2,919 Último mensaje 15 Septiembre 2006, 22:56 pm
por NYlOn
Graficos en 3d
Diseño Gráfico
valdragas 0 3,002 Último mensaje 29 Abril 2008, 14:08 pm
por valdragas
Quitarle Memoria de Graficos a los graficos de core i5
Hardware
Churrin515 7 7,097 Último mensaje 15 Septiembre 2010, 15:20 pm
por APOKLIPTICO
Gráficos
Dudas Generales
key_xiiLa 2 2,229 Último mensaje 12 Octubre 2010, 19:00 pm
por key_xiiLa
Graficos en c++
Programación C/C++
AXA 2 2,299 Último mensaje 7 Diciembre 2021, 07:34 am
por AXA
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines