7

Click here to load reader

P19 nelson circulo

Embed Size (px)

Citation preview

Page 1: P19 nelson circulo

Practica 19Dibujando un Circulo

OBJETIVO: Introducir al Modelado Geométrico utilizando primitivas de OpenGL.

Page 2: P19 nelson circulo

Descripción

Concepto: Círculo

Definición: OpenGL no tiene una primitiva que permita dibujar un círculo, sin embargo, éste se puede modelar a partir de la primitiva POLIGONO, dándole suficiente número de vértices, y distribuyéndolos de tal manera que formen un polígono regular.

Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL

Page 3: P19 nelson circulo

Ejemplo de Cómo Dibujar un Círculo

Descripción

Dados R, el radio del círculo deseado, y la coordenada de su centro (Cx, C

Y, C

Z), es

posible aproximar ésta figura geométrica a partir de un POLIGONO regular con n vértices. Mientras mayor sea el valor de n la figura más semejante será a la de un círculo.NOTA: El círculo será dibujado en el plano XY.

Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL

public void circulo(GL2 gl, float R, float Cx, float Cy, float Cz, int numv){

float angulo = 0.0f;    float Dx, Dy;        gl.glBegin(GL2.GL_POLYGON);

for(int i = 0; i < numv; ++i){           Dx = (float) (1* Math.cos(angulo*Math.PI/180));           Dy = (float) (1* Math.sin(angulo*Math.PI/180));           gl.glVertex3f(Cx+Dx, Cy+Dy, Cz);        angulo = angulo + 360.0f/numv;

}gl.glEnd();

}

Page 4: P19 nelson circulo

Ejemplo de Cómo Dibujar un Círculo

Descripción

Habiendo definido el método [circulo(...)] como miembro de nuestra clase LIENZO, solo resta mandarlo llamar para hacer uso de el.

Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL

    public void display(GLAutoDrawable glad) {          GL2 gl = glad.getGL().getGL2();                        gl.glClear(gl.GL_COLOR_BUFFER_BIT );                                circulo(gl, 1, ­3.5f, 0.0f, 0.0f, 5);        circulo(gl, 1, ­3.5f, 0.0f, 0.0f, 10);        circulo(gl, 1, ­3.5f, 0.0f, 0.0f, 15);        circulo(gl, 1, ­3.5f, 0.0f, 0.0f, 20);        circulo(gl, 1, ­3.5f, 0.0f, 0.0f, 25);    }

Page 5: P19 nelson circulo

ResultadoDescripción

OBSERVE como se aproxima cada vez mas a la forma de un círculo cuando el número de vértices aumenta.

Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL

Page 6: P19 nelson circulo

P19. Dibujando CírculosDesarrollo

1. Cree una Aplicación en Java que con OpenGL dibuje un círculo con R = 50, de color café, y con centro en el punto (75, 75, 0);

Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL

Page 7: P19 nelson circulo

FIN