CODIGO PARA GRAFICAR PIRAMIDE EN DISPLAY
Enviado por antoso2010 • 6 de Agosto de 2018 • Documentos de Investigación • 843 Palabras (4 Páginas) • 200 Visitas
GL gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
double yi, yf, xi, xf;
double xpi, xpf, ypi, ypf;
double xpc, ypc, dx, dy;
double xp1, yp1, xp2, yp2;
List
TPunto3D punto;
List
TPunto2D trazo;
double fx, fy, LC, phi;
int i, n, pi, pf;
// Medidas en pantalla
xpf = 640; // Punto final en pantalla en x
xpi = 0; // Punto inicial en pantalla en x
ypf = 480; // Punto final en pantalla en y
ypi = 0; // Punto inicial en pantalla en y
xpc = (xpi + xpf)/2; // Parte central de la ventana en x
ypc = (ypi + ypf)/2; // Parte central de la ventana en y
gl.glColor3f(1, 1, 0); // Color a usar: amarillo;
// Medidas del plano cartesiano a proyectar 2D
// debe ser simétrico para un escalamiento correcto.
xi = -10;
xf = 10;
yi = -10;
yf = 10;
// Escalamiento de pantalla del punto real al punto de pantalla
// Escalamiento de pantalla en x
dx = (Math.abs(xpi) + Math.abs(xpf))/(Math.abs(xi) + Math.abs(xf));
// dx = xpc/xf; // Es lo mismo que la linea anterior
// Escalamiento de pantalla en y
dy = (Math.abs(ypi) + Math.abs(ypf))/(Math.abs(yi) + Math.abs(yf));
// dy = ypc/yf; // Es lo mismo que la linea anterior
/* Forma de graficar en 3D a pantalla de 2D
*
* Z Y
* | |
* |______ Y => _____|_____ X
* / |
* / |
* X
*
* Método de caballera (Proyección paralela oblicua)
*/
// Colocamos las coordenadas de los puntos en el espacio cartesiano XYZ
puntos3D.add(new TPunto3D(3, -3, 0)); // punto 0
puntos3D.add(new TPunto3D(3, 3, 0)); // punto 1
puntos3D.add(new TPunto3D(-3, 3, 0)); // punto 2
puntos3D.add(new TPunto3D(-3, -3, 0)); // punto 3
puntos3D.add(new TPunto3D(0, 0, 5)); // punto 4
// Colocamos la secuencia de graficación de los puntos
puntos2D.add(new TPunto2D(0, 1)); // Segmento de los puntos 0 al 1
puntos2D.add(new TPunto2D(1, 2)); // Segmento de los puntos 1 al 2
puntos2D.add(new TPunto2D(2, 3)); // Segmento de los puntos 2 al 3
puntos2D.add(new TPunto2D(3, 0)); // Segmento de los puntos 3 al 0
...