T003: Primitivas Gráficas

publicado a la‎(s)‎ 20 sept. 2012 6:29 por Hernan Nina Hanco   [ actualizado el 19 may. 2014 17:44 ]
Los API gráficos son bibliotecas de funciones gráficas que pueden ser utilizadas en un lenguaje de programación (C++, java, C#) para crear aplicaciones gráficas. Para crear una imagen primeramente se describe los componentes individuales de una escena gráfica, luego cada uno de los componentes son descritos por primitivas geométricas que utilizan puntos, Líneas, círculos, superficies, curvas spline, Poli líneas, de esa manera se utilizan las primitivas gráficas.

2.1. Sistemas de Coordenadas de Referencia

Para describir una imagen primero es necesario seleccionar un sistema de coordenadas de referencia del mundo que pueden ser 2D ó 3D. Después, se describen los objetos de la imagen proporcionando sus especificaciones geométricas en términos de la posición dentro de las coordenadas. La descripción de la escena almacena esas posiciones junto con otros datos de los objetos de la imagen, como por ejemplo, extensión de coordenadas (Recuadro de contorno), color. Seguidamente las Rutinas de visualización, se encargan de representar la imagen en el dispositivo de visualización en base a la correspondencia de posiciones de píxeles dentro del buffer de la imagen.

Coordenadas de pantalla

Las ubicaciones sobre un monitor de vídeo se describen mediante coordenadas de pantalla que son números enteros y que se corresponden con las posiciones de píxel dentro del búfer de imagen. Los valores de las coordenadas de píxel proporcionan el número de línea de exploración (el valor y) y el número de columna (el valor x) dentro de una línea de exploración. Los procesos hardware, como el de refresco de pantalla, normalmente direccionan las posiciones de píxel con respecto al extremo superior izquierdo de la pantalla. Las líneas de exploración se identifican por tanto comenzando por 0, en la parte superior de la pantalla, y continuando hasta un cierto valor entero, ymax, en la parte inferior de la pantalla, mientras que las posiciones de píxel dentro de cada línea de exploración se numeran desde 0 a xmax, de izquierda a derecha. Sin embargo, con una serie de comandos software, podemos configurar cualquier sistema de referencia que nos resulte cómodo para las posiciones de pantalla, o bien podríamos utilizar valores cartesianos no enteros para describir una imagen. Los valores de coordenadas que se utilicen para describir la geometría de una escena serán convertidos por las rutinas de visualización a posiciones de píxel enteras dentro del búfer de imagen.

Los algoritmos de líneas de exploración para las primitivas gráficas utilizan las descripciones de coordenadas que definen los objetos para determinar la ubicación de los píxeles que hay que mostrar. Por ejemplo, dadas las coordenadas de los extremos de un segmento de línea, un algoritmo de visualización debe calcular las posiciones para los píxeles comprendidos en la línea definida entre los dos puntos extremos. Puesto que una posición de píxel ocupa un área finita en la pantalla, es preciso tener en cuenta ese tamaño finito de los píxeles dentro de los algoritmos de implementación. Por el momento, vamos a suponer que cada posición entera en la pantalla hace referencia al centro de un área de píxel. Una vez identificadas las posiciones de los pixeles para un objeto, hay que almacenar los valores de color apropiados dentro del búfer de imagen. Con este propósito vamos a suponer que tenemos disponible un procedimiento de bajo nivel de la forma:

setPixel(x,y);

Este procedimiento almacena el valor actual de color dentro del búfer de imagen, en la posición entera (x,y), relativa a la posición seleccionada para el origen de las coordenadas de la pantalla. En ocasiones, se hace necesario también consultar el valor actualmente almacenado en el búfer de imagen para una determinada ubicación de pixel. Por tanto, vamos a suponer que se dispone de la siguiente función de bajo nivel para obtener un valor de color del búfer de imagen:

getPixel(x, y,color);

En esta función, el parámetro color recibe un valor entero que se corresponde con los códigos RGB combinados almacenados para el píxel especificado en la posición (x,y).

Aunque sólo necesitamos los valores de color en las posiciones (x,y) para una imagen bidimensional, se necesita información adicional de coordenadas de pantalla para las escenas tridimensionales. En este caso, las coordenadas de pantalla se almacenan como valores tridimensionales, haciendo referencia la tercera dimensión a la profundidad de las posiciones de objeto en relación con una determinada posición de visualización.

Especificaciones absolutas y relativas de coordenadas

  1. Sistema de coordenadas absolutas
  1. Posiciones reales dentro del sistema de coordenadas utilizado.
  1. Sistema de Coordenadas relativas
  1. Aplicaciones:
  1. Imagenes con trazadores de tinta
  2. Dibujo artístico, autoedición e impresión
  1. Posiciones de coordenadas en forma de un desplazamiento.
  1. Ejemplo: posición inicial (3,8), relativa (2, -1), absoluta (5,7).
  1. Secuencia de coordenadas relativas.
  1. Secuencia de segmentos de línea.
Comments