Oscar Gabriel Caballero Martínez - Gráficos por computadora usando JOGL

Здесь есть возможность читать онлайн «Oscar Gabriel Caballero Martínez - Gráficos por computadora usando JOGL» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: unrecognised, на испанском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Gráficos por computadora usando JOGL: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Gráficos por computadora usando JOGL»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Este documento está dirigido a personas interesadas en la generación de gráficos por computadora con el lenguaje de programación Java. A lo largo del texto se descubrirá que la mayoría de los trabajos que existen para la generación de gráficos por computadora están basados en el uso de las librerías conocidas como OpenGL. Las referencias más accesibles están trabajadas con el lenguaje de programación C, lenguaje principal en el que se han creado las funciones de la librería. El reto consiste en presentar el uso de estas librerías con el lenguaje de programación Java, de ahí las siglas JOGL (Java Open Graphics Library o Java OpenGL). La importancia del presente trabajo radica en mostrar la facilidad con la cual los programas que se encuentran en las referencias del presente documento también pueden ser escritos en el lenguaje Java, y así poseer un panorama más amplio que ayude a la profundización del conocimiento para la creación de las gráficas por computadora.

Gráficos por computadora usando JOGL — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Gráficos por computadora usando JOGL», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

3. final GL2 gl = glad.getGL().getGL2(); // Se genera un objeto de tipo

3.1 // GL2

4. final GLU glu = new GLU(); // Se genera un objeto de tipo GLU

5. gl.glMatrixMode (GL2.GL_PROJECTION); // Se presenta el modo de

6. // Proyección

7. gl.glClearColor (1.0f, 1.0f, 1.0f, 0.0f); // Se coloca el color

7.1 // blanco en el fondo

8. // del canvas para dibujar. RGBA=(1,1,1,0)

9. glu.gluOrtho2D (-10.0,10.0,-10.0,10.0); //Las dimensiones a trabajar

9.1 // son de

10. //-10 a 10 en x y de -10 a 10 en y

11. gl.glMatrixMode(GL2.GL_MODELVIEW); // Se presenta el modo de vista

12. gl.glLoadIdentity(); // Se coloca la matriz identidad para

12.1 // operaciones.

13. }

14. @Override

15. public void display(GLAutoDrawable glad) {

16. final GL2 gl = glad.getGL().getGL2(); // Se genera un objeto de tipo

16.1 // GL2

17. gl.glClear(GL2.GL_COLOR_BUFFER_BIT); // Se limpia el buffer de color

18. gl.glLoadIdentity(); // Se coloca la matriz identidad para operaciones

19. dibuja(glad,0,0,2.5f);//Se invoca a la función dibuja, la “f”

19.1 // significa para java

20. // que el valor es de punto flotante

21. gl.glFlush(); // Se limpian los bufferes

22. }

23. public void dibuja(GLAutoDrawable glad,float x1, float y1, float lado)

24. {

25. final GL2 gl = glad.getGL().getGL2(); // Se genera un objeto GL2

26. gl.glPointSize(12f); // Se fija el tamaño del punto

27. gl.glBegin(GL2.GL_POINTS); // Se comienzan a dibujar puntos

28. gl.glColor3f(1, 0, 0); // Se activa el color rojo R=1

29. gl.glVertex2f(x1-lado,y1-lado); // Se dibuja el punto en la

29.1 // posición

30. gl.glColor3f(0, 0, 1); // Se activa el color azul B=1

31. gl.glVertex2f(x1-lado,y1+lado); // Se dibuja el punto en la

31.1 // posición

32. gl.glColor3f(0, 1, 0); // Se activa el color verde G=1

33. gl.glVertex2f(x1+lado,y1+lado); // Se dibuja el punto en la

33.1 //posición

34. gl.glColor3f(0, 0, 0); // se desactivan todos los colores,

34.1 // negro

35. gl.glVertex2f(x1+lado,y1-lado); // Se dibuja el punto en la

35.1 // posición

36. gl.glEnd(); // Se termina de dibujar.

37. }

Código3.1 Puntos2D.java

Figura 32 Salida del programa anterior Fuente Elaboración propia Hay que - фото 18

Figura 3.2 Salida del programa anterior

Fuente: Elaboración propia.

Hay que observar a los objetos GL2 en las líneas 3, 16 y 25, todos son generados en cada una de las funciones. Se les llaman variables (en el caso, son objetos ) locales, ya que sólo van a ser reconocidas en las funciones que se utilizan. Cuando son generadas en la parte superior de las clases, son reconocidas por todas las funciones de la clase y se les llaman variables (en el caso, objetos) globales.

Del código anterior hay que destacar lo siguiente: en la línea 26 se fija el tamaño del punto de 12 pixeles en la función glPointSize . En las líneas 29, 31, 33 y 35 se utiliza el método glVertex2f [TutorialOpenGL, 2016], cuyos parámetros son dos valores de punto flotante que representan la posición en dos dimensiones. Y en las líneas 28, 30, 32 y 34 el método glColor3f especifica el color para cada uno de los puntos a dibujar; los parámetros son la intensidad de los colores Rojo, Verde y Azul desde 0 a 1. En la línea 34 los parámetros son ceros, lo que significa que no hay intensidades de los tres colores, por lo tanto, hay una ausencia de color, que genera el negro. Cuando los tres valores correspondientes a los colores están a su máxima intensidad (o sea, 1), generan el color blanco.

Se observa que se generan puntos de diferentes colores, pero podemos generar más gráficas primitivas. Por ejemplo, para generar una línea es necesaria la característica GL_LINES y además un par de vértices que indican dónde empieza y dónde termina la línea correspondiente, como se muestra en la figura 3.3 a continuación [Villar, 2009].

Figura 33 Primitivas gráficas Fuente Apuntes de Villar Patiño Práctica 1 - фото 19

Figura 3.3 Primitivas gráficas

Fuente: Apuntes de Villar Patiño.

Práctica

1. Modifique el programa Puntos2D para que presente la siguiente salida.

Genere un nuevo programa para que cuadricule cada unidad del plano cartesiano - фото 20

Genere un nuevo programa para que cuadricule cada unidad del plano cartesiano con las líneas azules y los ejes en negro.

Observe la siguiente tabla de colores Figura 34 Tabla de colores de Windows - фото 21

Observe la siguiente tabla de colores

Figura 34 Tabla de colores de Windows Fuente Elaboración propia Para trabajar - фото 22

Figura 3.4 Tabla de colores de Windows

Fuente: Elaboración propia

Para trabajar con el color escogido se usa el método glColor3i(15,31,172) , que genera la salida mostrada en la figura 3.5, pero no proporciona el color esperado. Con ello surge la pregunta: ¿Existe un método que nos ayude a generar la salida esperada, utilizando los mismos valores de los colores?

Figura 35 Gráfica de la secante Fuente Elaboración propia La respuesta es - фото 23

Figura 3.5 Gráfica de la secante.

Fuente: Elaboración propia.

La respuesta es sí con el método glColor3d (15/256.0, 31/256.0, 172/256.0), que se puede observar en la línea 31 del siguiente código. Hay que resaltar los parámetros del método; estos se transcriben, por ejemplo, 15/250.0: se debe a que, si se escribe 35/256, como los dos valores son enteros la división regresaría un entero, el cual es 0. Al escribir 256.0 se le dice a java que el valor es uno de doble precisión y el resultado es un valor de doble precisión.

Figura 36 gráfica del seno Fuente Elaboración propia El siguiente código en - фото 24

Figura 3.6 gráfica del seno

Fuente: Elaboración propia.

El siguiente código, en una nueva clase, genera la salida de la figura 3.6, llamado GraficasTrigonometricas .

1. public void init(GLAutoDrawable glad) {

2. final GL2 gl = glad.getGL().getGL2();

3. final GLU glu = new GLU();

4. gl.glMatrixMode (GL2.GL_PROJECTION);

5. gl.glClearColor (1.0f, 1.0f, 1.0f, 0.0f);

6. glu.gluOrtho2D (-10.0, 10.0, -1.2, 1.2);

7. gl.glMatrixMode(GL2.GL_MODELVIEW);

8. gl.glLoadIdentity();

9. }

10. public void display(GLAutoDrawable glad) {

11. final GL2 gl = glad.getGL().getGL2();

12. gl.glClear(GL2.GL_COLOR_BUFFER_BIT);

13. gl.glLoadIdentity();

14. dibujaEjes(gl,-9f,9f,-1f,1f);

15. dibujaSeno(gl);

16. gl.glFlush();

17. }

18. public void dibujaEjes(GL2 gl,float xi,float xf,float yi, float yf){

19. gl.glLineWidth(10f);

20. gl.glColor3f(0.0f, 0.0f, 0.0f);

21. gl.glBegin(GL2.GL_LINES);

22. gl.glVertex2f(xi, 0.0f);

23. gl.glVertex2f(xf, 0.0f);

24. gl.glVertex2f(0.0f, yi);

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Gráficos por computadora usando JOGL»

Представляем Вашему вниманию похожие книги на «Gráficos por computadora usando JOGL» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Gráficos por computadora usando JOGL»

Обсуждение, отзывы о книге «Gráficos por computadora usando JOGL» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x