Autor
|
Tema: Graficos 3D (Leído 6,739 veces)
|
Tlecoatl
Desconectado
Mensajes: 15
|
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... 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
Mensajes: 2.021
Actualizate o muere!
|
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
Mensajes: 15
|
Muchas gracias =)
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Hola qué tal. Puedes hacerlo así. import java.awt.Color; import java.awt.geom.GeneralPath; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JPanel; public class CubeJPanel extends JPanel { // draw cube public void paintComponent ( Graphics g ) { super.paintComponent( g ); // one base int base1X[] = { 100, 100, 200, 200, 100 }; int base1Y[] = { 100, 200, 200, 100, 100 }; // second base int base2X[] = { 75, 75, 175, 175, 75 }; int base2Y[] = { 75, 175, 175 ,75, 75 }; g2d. setColor( Color. red ); // create path for the cube for ( int i = 1; i <= 4; i++ ) { // create the first base cube.moveTo( base1X[ i - 1 ], base1Y[ i - 1 ] ); cube.lineTo( base1X[ i ], base1Y[ i ] ); // create the second base cube.moveTo( base2X[ i - 1 ], base2Y[ i - 1 ] ); cube.lineTo( base2X[ i ], base2Y[ i ] ); // create the lines between the bases cube.moveTo( base1X[ i ], base1Y[ i ] ); cube.lineTo( base2X[ i ], base2Y[ i ] ); } // end for g2d.draw( cube ); } // end method paintComponent } // end class CubeJPanel
import javax.swing.JFrame; public class Cube { public static void main ( String args [] ) { // create frame for CubeJPanel frame. setDefaultCloseOperation( JFrame. EXIT_ON_CLOSE ); CubeJPanel cubeJPanel = new CubeJPanel(); frame.add( cubeJPanel ); // add cubeJPanel to frame frame.setSize( 250, 270 ); // set frame size frame.setVisible( true ); // display frame } // end main } // end class Cube
Este código no es mio, pero tampoco se quien es el autor xD Espero te sirva. Saludos.
|
|
|
En línea
|
abc
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Graficos
Programación Visual Basic
|
zerofive
|
9
|
3,234
|
15 Septiembre 2006, 22:56 pm
por NYlOn
|
|
|
Graficos en 3d
Diseño Gráfico
|
valdragas
|
0
|
3,173
|
29 Abril 2008, 14:08 pm
por valdragas
|
|
|
Quitarle Memoria de Graficos a los graficos de core i5
Hardware
|
Churrin515
|
7
|
7,455
|
15 Septiembre 2010, 15:20 pm
por APOKLIPTICO
|
|
|
Gráficos
Dudas Generales
|
key_xiiLa
|
2
|
2,503
|
12 Octubre 2010, 19:00 pm
por key_xiiLa
|
|
|
Graficos en c++
Programación C/C++
|
AXA
|
2
|
2,566
|
7 Diciembre 2021, 07:34 am
por AXA
|
|