Está en la página 1de 4

Las primitivas grficas son los objetos fundamentales que se pueden dibujar mediante llamadas a la Xlib.

La relacin entre ambas se puede ver en la tabla 6.1:


+-------------------+-------------------------------------+ |Llamada a la Xlib |Primitiva grfica | +-------------------+-------------------------------------+ |XDrawPoint |punto | +-------------------+-------------------------------------+ |XDrawPoints |puntos | +-------------------+-------------------------------------+ |XDrawLine |lnea entre los dos puntos | +-------------------+-------------------------------------+ |XDrawLines |polilnea | +-------------------+-------------------------------------+ |XDrawSegments |segmentos de lnea | +-------------------+-------------------------------------+ |XDrawRectangle |rectngulo | +-------------------+-------------------------------------+ |XDrawRectangles |rectngulos | +-------------------+-------------------------------------+ |XDrawArc |arco de circunferencia | +-------------------+-------------------------------------+ |XDrawArcs |arcos de circunferencia | +-------------------+-------------------------------------+ |XFillRectangle |rectngulo relleno | +-------------------+-------------------------------------+ |XFillRectangles |rectngulos rellenos | +-------------------+-------------------------------------+ |XFillPolygon |polgono relleno | +-------------------+-------------------------------------+ |XFillArc |arco de circunferencia relleno | +-------------------+-------------------------------------+ |XFillArcs |arcos de circunferencia rellenos | +-------------------+-------------------------------------+ |XDrawText | | |XDrawString |texto | |XDrawImageString | | +-------------------+-------------------------------------+ |XDrawText16 | | |XDrawString16 |texto especial (alfabetos no latinos)| |XDrawImageString16 | | +-------------------+-------------------------------------+

Primitivas de Graficacin PUNTO Se especifica mediante sus coordenadas. Los distintos atributos que puede tener un punto son, por ejemplo, su color y su tamao. En OpenGL los puntos se representan mediante vrtices en los que se almacena: - Coordenadas posicionales (en coordenadas homogneas 4-dimensionales). - Colores. - Coordenadas de textura. - Cualquier otro dato asociado con ese punto en el espacio. Para especificar la geometra de un punto, simplemente proporcionamos las correspondientes coordenadas dentro del sistema de referencia del mundo. A continuacin, estas coordenadas, junto con las dems descripciones geomtricas que tengamos en nuestro esquema, se pasan a las rutinas de visualizacin. Se utiliza la siguiente funcin OpenGL para indicar los valores de coordenadas para una nica posicin: glVertex* ( ); Donde el asterisco (*) indica que esta funcin necesita cdigos de sufijo. Estos cdigos de sufijo se utilizan para identificar la dimensin espacial, el tipo de datos numrico que hay que utilizar para los valores de las coordenadas y una posible forma vectorial para la especificacin de las coordenadas. La funcin glVertex debe situarse entre una funcin glBegin y una funcin glEnd. El argumento de la funcin glBegin se uti- liza para identificar el tipo de primitiva grfica que hay que visualizar, mientras que glEnd no toma ningn argumento. Para dibujar puntos, el argumento de la funcin glBegin es la constante simblica GL_P0INTS. As. la manera de especificar en OpenGL la posicin de un punto es glBegin (GL_POINTSi; glVertex* t ) ,glEnd ( ); La tercera primitiva de lnea OpenGLes GL_LINE_LOOP. que genera una poiilnea cerrada. Se aade una lnea adicional a la secuencia de lneas del ejemplo anterior, de modo que se conecta el ltimo vrtice de la polilinea con el primero LINEA Un segmento de lnea recta dentro de una escena est definido por las coordenadas de los dos extremos del segmento. Para mostrar la lnea en un monitor digital, el sistema grfico debe primero proyectar las coordenadas de los extremos para obtener coordenadas de pantalla de valor entero y determinar las posiciones de pxel ms prximas a lo largo de la lnea que conecta los dos extremos. Entonces, se cargar en el bfer de imagen el color correspondiente a la lnea en las coordenadas de pxel apropiadas, Al leer los datos del bfer de imagen, la controladora de vdeo dibujar los pxeles en pantalla. Este proceso lo que hace es digitalizar la lnea para obtener un conjunto de posiciones enteras discretas que. En general, nicamente sirve como aproximacin del verdadero trayecto seguido por la lnea. Una posicin de lnea calculada como (10.48. 20.51), por ejemplo, se convierte a la posicin de pxel (10, 21). Este redondeo de los valores de las coordenadas para obtener enteros hace que todas las lneas (excepto las horizontales y las verticales) se dibujen con una apariencia escalonada. La forma escalonada caracterstica de las l- neas digitalizadas es particularmente apreciable en los sistemas de baja resolucin, pudindose mejorar un poco su apariencia si se utiliza un monitor de resolucin ms alta. Otras tcnicas ms efectivas para suavizar la lnea digital izada se basan en ajustar las intensidades de los pxeles a lo largo del trayecto de la lnea. Funcin explcita de la lnea: y =mx+B Algoritmo basado en DDA (Digital differential Analizer) Si se emplea coma flotante y redondeos, poco eficiente

Si se emplea enteros problemas de continuidad CIRCULO Un circulo se define como el conjunto de puntos que se encuentran a una distancia determinada f con respecto a una posicin central. Para cualquier punto del crculo, esta relacin de distancia se expresa mediante el teorema de Pitgoras en coordenadas cartesianas. Algoritmo del punto medio (Bresenham) Se basa en el empleo de la funcin implcita: F(x,y )=ax+by+c=0 Si F(x,y)=0 el punto est en la recta Si F(x,y)>0 el punto est encima de la recta Si F(x,y)<0 el punto est debajo de la recta Hacemos el anlisis para rectas de 45 o pendiente igual a uno (m=1), y luego lo extendemos a cualquier pendiente CARACTERES La apariencia de los caracteres se controla mediante atributos tales como font, tamao, color y orientacin. El font es el estilo de diseo particular tal como Lucida Casual, Courier,etc. En el modo texto se usa un generador de caracteres incorporado y se dibujan caracteres alfabticos, numricos, signos de puntuacin y algunos smbolos especiales. Las imgenes grficas incluyen a menudo informacin textual, como por ejemplo etiquetas, grficas, carteles en edificios o vehculos e informacin general de identificacin para aplicaciones de simulacin y visualizacin. Algunos sistemas proporcionan un amplio conjunto de funciones de caracteres, mientras que otros slo ofrecen un soporte de generacin de caracteres mnimo. Las letras, los nmeros y otros caracteres pueden mostrarse con diversos tamaos y estilos, estilo global de diseo para un conjunto (o familia) de caracteres se denomina tipo de letra. Las fuentes de mapa de bits son las ms simples de definir y de visualizar: basta con asignar las cuadrculas de caracteres a una posicin dentro del bfer de imagen. Podemos incrementar o decrementar el tamao del mapa de bits de un carcter solamente en mltiplos enteros del tamao del pxel. Si queremos doblar el tamao de un carcter, tenemos que doblar el nmero de pxeles del mapa de bits, con lo que los bordes del carcter tendrn una apariencia escalonada caracteres estndar, otras formas geomtricas especiales como los puntos, los crculos y las cruces suelen estar disponibles como smbolos marcadores. Las descripciones geomtricas de los caracteres se proporcionan en coordenadas universales, al igual que con las otras primitivas, y esta informacin se hace corresponder con las coordenadas de pantalla mediante las transformaciones de visualizacin. Un carcter de mapa de bits se describe mediante una cuadrcula rectangular de valores binarios y una posicin de referencia para la cuadrcula. PATRONES Puesto que OpenGL proporciona diversos bferes, podemos almacenar una matriz de valores en un bfer concreto seleccionando dicho bfer como objetivo de la rutina glDrawPixels. Algunos pixeles almacenan valores de color, mientras que otros almacenan otros tipos de datos relativos a los pixeles. Por ejemplo, un bfer de profundidad se utiliza para almacenar las distancias de los objetos (profundidades) con respecto a la posicin de visualizacin, mientras que un bfer de patrones se utiliza para almacenar los patrones de los con tomos correspondientes a una escena. Podemos seleccionar uno de estos dos bferes asignando al parmetro dataFormat de la rutina glDrawPixels los valores GL_DEPTH_COMPONENT o GL_STENCIL_INDEX. Para estos bferes, tendramos que almacenar en la matriz de pixeles valores de profundidad o informacin sobre el patrn del contorno. Las primitivas de salida proporcionan las herramientas bsicas para construir imgenes con puntos individuales, lneas rectas, curvas, reas de color rellenas, patrones matriciales y textos. Las primitivas se especifican proporcionando su descripcin geomtrica en un sistema de referencia cartesiano en coordenadas universales

Bibliografa

Grficos por computadora, Donald Hearn, Mc Graw Hill

También podría gustarte