Está en la página 1de 11

Miguel Antonio Torres Alfaro

Matricula.

Grupo: k048

GRAFICACIÓN

Mtro. Eduardo Pazos Gutiérrez

Actividad de aprendizaje 3

Programación en 3D

Constitución 27/01/20 6:27pm


Objetivo:

Realizar dos programas en Java con OpenGL que dibujen una esfera y un toro “dona” en el

espacio de tres dimensiones usando la biblioteca glut.

Instrucciones:

Programa que dibuja una esfera.

1. De acuerdo a los conceptos estudiados en la Sección 3.1 “Representación rectangular

tridimensional” y en la Sección 3.2, crear un programa que dibuje una esfera usando la

biblioteca glut.

a. Después de haber estudiado los códigos Programa_1-3D y Programa_2-3D de las secciones

3.1 y 3.2, crear un proyecto en JOGL dentro de NetBeans.

b. Poner el nombre al proyecto: “Grafica3D_Esfera”, el nombre del paquete al que pertenece el

proyecto debe ser “Graficacion”.

c. Ya creado el código fuente realizar los pasos que se utilizaron para Programa_1-3D, pero en el

método “display”, en vez de dibujar un cono, deberá dibujar una esfera con la instrucción:

• glutWireSphere(radio, n_líneas_longitud, n_líneas_latitud);

donde n_líneas_longitud y n_líneas_latitud, representan el número de líneas de longitud y

latitud respectivamente de una superficie esférica y radio es el radio de la esfera.

d. Compilar y Ejecutar el código y guardar la pantalla de ejecución del programa.

Programa que dibuja un toro (dona).

2. De acuerdo a los conceptos estudiados en la Sección 3.1 “Representación rectangular

tridimensional” y en la Sección 3.2, crear un programa que dibuje un toro usando la biblioteca

glut.

a. Después de haber estudiado los códigos Programa_1-3D y Programa_2-3D de las secciones

3.1 y 3.2, crear un proyecto en JOGL dentro de NetBeans.

b. Poner el nombre al proyecto: “Grafica3D_Toro”, el nombre del paquete al que pertenece el

proyecto debe ser “Graficación”.

c. Ya creado el código fuente realizar los pasos que se utilizaron para Programa_1-3D, pero en el
método “display”, en vez de dibujar un cono, deberá dibujar un toro con la instrucción:

• glutWireTorus(radio_sección_transversal, radio_axial, n_círculos_concéntricos,

n_secciones_radiales);

donde radio_sección_transversal es el radio (del corte transversal) del toro, radio_axial es el

radio axial del toro, n_círculos_concentricos es el número de anillos o aros que dibujan al toro y

n_secciones_radiales es el número de líneas que hacen el efecto de la superficie del toro.

d. Compilar y Ejecutar el código y guardar la pantalla de ejecución del programa.


Primer ejercicio esfera

package org.yourorghere;

import com.sun.opengl.util.GLUT; importamos el glut

import com.sun.opengl.util.Animator;

import java.awt.Frame;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.media.opengl.GL;

import javax.media.opengl.GLAutoDrawable;

import javax.media.opengl.GLCanvas;

import javax.media.opengl.GLEventListener;

import javax.media.opengl.glu.GLU;

/**

* Programa_13d.java <BR>

* author: Brian Paul (converted to Java by Ron Cemer and Sven Goethel) <P>

* This version is equal to Brian Paul's version 1.2 1999/10/21

*/

public class Programa_13d implements GLEventListener {

public static void main(String[] args) {

Frame frame = new Frame("Simple JOGL Application");

GLCanvas canvas = new GLCanvas();

canvas.addGLEventListener(new Programa_13d());

frame.add(canvas);
frame.setSize(640, 480);

final Animator animator = new Animator(canvas);

frame.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

// Run this on another thread than the AWT event queue to

// make sure the call to Animator.stop() completes before

// exiting

new Thread(new Runnable() {

public void run() {

animator.stop();

System.exit(0);

}).start();

});

// Center frame

frame.setLocationRelativeTo(null);

frame.setVisible(true);

animator.start();

public void init(GLAutoDrawable drawable) {

public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
}

public void display(GLAutoDrawable drawable) {

GL gl=drawable.getGL();

GLUT glut= new GLUT();

gl.glClear(GL.GL_COLOR_BUFFER_BIT);

gl.glColor3f(1, 1, 0); este código marca el color de las líneas utilizadas en este caso amarillo

gl.glPushMatrix();

gl.glScaled(0.3, 0.3, 0.3);

gl.glTranslatef(0.0f, 0.0f, 0.0f);

gl.glRotated(-130, 12,0, 0);

glut.glutWireSphere( 2.5, 10, 10); en esta parte indicamos al programa para que nos muestre la
esfera con los parámetros indicados

gl.glPopMatrix();

gl.glFlush();

public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean


deviceChanged) {

}
Ejercicio 2 toro “dona”

package org.yourorghere;

import com.sun.opengl.util.GLUT;

import com.sun.opengl.util.Animator;

import java.awt.Frame;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.media.opengl.GL;

import javax.media.opengl.GLAutoDrawable;

import javax.media.opengl.GLCanvas;

import javax.media.opengl.GLEventListener;

import javax.media.opengl.glu.GLU;

/**

* Programa_13d.java <BR>

* author: Brian Paul (converted to Java by Ron Cemer and Sven Goethel) <P>

* This version is equal to Brian Paul's version 1.2 1999/10/21

*/

public class Grafica3D_Toro implements GLEventListener {

public static void main(String[] args) {

Frame frame = new Frame("Simple JOGL Application");

GLCanvas canvas = new GLCanvas();

canvas.addGLEventListener(new Grafica3D_Toro());
frame.add(canvas);

frame.setSize(640, 480);

final Animator animator = new Animator(canvas);

frame.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

// Run this on another thread than the AWT event queue to

// make sure the call to Animator.stop() completes before

// exiting

new Thread(new Runnable() {

public void run() {

animator.stop();

System.exit(0);

}).start();

});

// Center frame

frame.setLocationRelativeTo(null);

frame.setVisible(true);

animator.start();

public void init(GLAutoDrawable drawable) {

}
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {

public void display(GLAutoDrawable drawable) {

GL gl=drawable.getGL();

GLUT glut= new GLUT();

gl.glClear(GL.GL_COLOR_BUFFER_BIT);

gl.glColor3f(1, 1, 0);

gl.glPushMatrix();

gl.glScaled(0.3, 0.3, 0.3);

gl.glTranslatef(0.0f, 0.0f, 0.0f);

gl.glRotated(-45, 1,0, 0);

glut.glutWireTorus(1, 2, 60, 60);

gl.glPopMatrix();

gl.glFlush();

public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean


deviceChanged) {