You are on page 1of 18

Grficos vectoriales Una imagen vectorial es una imagen digital formada por objetos geomtricos independientes (segmentos, polgonos,

arcos, etc.), cada uno de ellos definido por distintos atributos matemticos de forma, de posicin, de color, etc. Por ejemplo un crculo de color rojo quedara definido por la posicin de su centro, su radio, el grosor de lnea y su color. Este formato de imagen es completamente distinto al formato de los grficos rasterizados, tambin llamados imgenes matriciales, que estn formados por pxeles. El inters principal de los grficos vectoriales es poder ampliar el tamao de una imagen a voluntad sin sufrir el efecto de escalado que sufren los grficos rasterizados. Asimismo, permiten mover, estirar y retorcer imgenes de manera relativamente sencilla. Su uso tambin est muy extendido en la generacin de imgenes en tres dimensiones tanto dinmicas como estticas. Todos los ordenadores actuales traducen los grficos vectoriales a grficos rasterizados para poder representarlos en pantalla al estar sta constituida fsicamente por pxeles.

Locomotora a vapor en formato de imagen vectorial, originalmente en formato Windows Metafile (convertido a PNG.) Se puede comprobar que a la imagen le falta realismo fotogrfico en comparacin con su equivalente en formato matricial o rasterizado.

La foto original que fue tomado en un formato matricial JPEG.

Contenido [ocultar] 1 Historia 2 Figuras geomtricas bsicas 3 Principales aplicaciones o 3.1 Generacin de grficos o 3.2 Lenguajes de descripcin de documentos o 3.3 Tipografas o 3.4 Videojuegos o 3.5 Internet 4 Programas y formatos vectoriales o 4.1 Impresin 5 Ventajas y desventajas o 5.1 Ventajas o 5.2 Desventajas 6 Vase tambin HISTORIA Desde los inicios del computador en 1950 hasta la dcada de los ochenta se usaba un sistema vectorial de generacin de grficos diferente al actual. En este sistema caligrfico el rayo elctrico del tubo de rayo catdico de la pantalla era guiado directamente para dibujar las formas necesarias, segmento de lnea por segmento de lnea, quedando en negro el resto de la pantalla. Este proceso se repeta a gran velocidad para alcanzar una imagen libre de intermitencias o muy cercana a estar libre de ellas. Este sistema permita visualizar imgenes estticas y en movimiento de buena resolucin (para esas fechas) sin usar la inimaginable cantidad de memoria que se hubiera necesitado para conseguir la resolucin equivalente en un sistema de rasterizacin, permitiendo que la secuencia de imgenes diese la sensacin de movimiento e incluso consiguiendo que titilaran modificando slo algunas de las palabras del cdigo de la grfica en su respectivo display file. Estos monitores basados en vectores tambin eran conocidos como monitores X-Y ( X-Y displays). Uno de los primeros usos de los vectores en el proceso de visualizacin fue el realizado por la Fuerza Area de los Estados Unidos. El sistema de generacin de grficos mediante vectores se utiliz hasta 1999 en el control areo y probablemente an se siga usando en diversos sistemas militares. Ivan Sutherland emple este mismo sistema en la TX-2 para ejecutar su programa Sketchpad en el MIT Lincoln Laboratory en 1963. Los subsiguientes sistemas de representacin grfica vectorial incluan la GT40 de Digital; existi una consola llamada Vectrex que usaba grficos vectoriales para mostrar videojuegos como Asteroids y Space Wars; y equipos como el Tektronix 4014, podan generar imgenes vectoriales dinmicas. El trmino vector es usado comnmente en el contexto de grficos de dos dimensiones producidos por computador. Es uno de los muchos modos con los que un artista cuenta para crear una imagen con una previsualizacin rasterizada. Otras formas de uso pueden ser en textos, en multimedia y en la creacin de escenarios 3D. Prcticamente todos los programas de modelado en 3D usan tcnicas que generan grficos vectoriales en 2D. Los plotters usados en dibujo tcnico siguen dibujando los vectores directamente sobre el papel.

Este es un ejemplo en el que se pueden comparar los grficos vectoriales (columna de la izquierda) con los grficos rasterizados (columna de la derecha) al ampliar las respectivas imgenes. Como se puede comprobar, a medida que aumenta el zoom los grficos de la izquierda mantienen su calidad, mientras que los de la derecha van revelando paulatinamente los pxeles que conforman la imagen. Los grficos vectoriales pueden ser escalados ilimitadamente sin perder su calidad. Los dos ejemplos de ampliacin al 300% y al 600% ilustran especialmente bien esta propiedad de los grficos vectoriales: los contornos de las figuras geomtricas (franjas blancas detrs de la letra A) no aumentan proporcionalmente en la figura en el caso del grfico rasterizado.

Figuras geomtricas bsicas Lneas y polilneas Polgonos Crculos y elipses Curvas de Bzier Bezigonos Texto (normalmente TrueType o FreeType u otra tipografa que utilice curvas de Bzier).

La lista anterior no incluye otros tipos de curvas (spline de Catmull-Rom, NURBS,...), que son tiles para otro tipo de aplicaciones. Frecuentemente a las imgenes bitmap ( o rasterizadas) se las considera formatos algo primitivos, desde un punto de vista conceptual, ya que su forma de almacenar la informacin en pixels no permite la misma flexibilidad que se obtiene con una imagen vectorial. Sin embargo las imgenes bitmap presentan ventajas en otras reas como la fotografa. Principales aplicaciones

Imagen vectorial de una videoconsola PlayStation 3, obtenida explotando al mximo las oportunidades que ofrece el lenguaje SVG Generacin de grficos Se utilizan para crear logos ampliables a voluntad as como en el diseo tcnico con programas de tipo CAD (Computer Aided Design). Muy populares para generar escenas 3D. Lenguajes de descripcin de documentos Los grficos vectoriales permiten describir el aspecto de un documento independientemente de la resolucin del dispositivo de salida. Los formatos ms conocidos son PostScript y PDF. A diferencia de los grficos rasterizados, se puede visualizar e imprimir estos documentos sin prdida en cualquier resolucin. Tipografas La mayora de aplicaciones actuales utilizan texto formado por imgenes vectoriales. Los ejemplos ms comunes son TrueType, OpenType y PostScript. Videojuegos En los videojuegos 3D es habitual la utilizacin de grficos vectoriales. Internet Los grficos vectoriales que se encuentran en el World Wide Web suelen ser o bien de formatos abiertos VML y SVG, o bien SWF en formato propietario. Estos ltimos se pueden visualizar con Adobe Flash Player. Programas y formatos vectoriales [editar] VML (codigo HTML) Adobe Flash (formato SWF) Adobe Illustrator (formato AI) CorelDRAW (formato CDR) Drawing eXchange File, formato de intercambio de Autocad (formato DXF) FreeHand (formatos FH9, FH10, FH11) Gimp HPGL: (HP Graphic Language), Un estndar de facto para los trazadores grficos (Plotter). IGES

InkScape Metaarchivo de Windows (WMF) (permite tambin la inclusin de mapas de bits) Paint Tool SAI Portable Document Format (PDF) PostScript (PS, EPS (Encapsulated PostScript)) Scalable Vector Graphics (SVG) OpenOffice Draw (ODG)

Impresin Un punto clave de las imgenes vectoriales es su practica puesta a punto en el momento de la impresin ya que es posible escalarlas y aumentar su definicin de forma ilimitada. Por ejemplo: se puede tomar el mismo logo vectorizado imprimirlo en una tarjeta personal, y despus, agrandarlo e imprimirlo en una valla manteniendo en ambas imgenes el mismo nivel de calidad. Los ejemplos ms populares de formato de documentos que se deban imprimir son PDF y PostScript. Otra aplicacin donde los grficos vectoriales son importantes es el plotter de corte, ya que ste, como su nombre indica, corta reas de color diseadas por el usuario a partir de un archivo digital. Estas figuras estn construidas a partir de vectores que son interpretados por el plotter como las lneas lmite por donde debe pasar la cuchilla que corta el material. (este punto necesita referencias) Ventajas y desventajas Ventajas Dependiendo de cada caso particular, las imgenes vectoriales pueden

requerir menor espacio en disco que un bitmap. Las imgenes formadas por colores planos o degradados sencillos son ms factibles de ser vectorizadas. A menor informacin para crear la imagen, menor ser el tamao del archivo. Dos imgenes con dimensiones de presentacin distintas pero con la misma informacin vectorial, ocuparn el mismo espacio en disco. No pierden calidad al ser escaladas. En principio, se puede escalar una imagen vectorial de forma ilimitada. En el caso de las imgenes rasterizadas, se alcanza un punto en el que es evidente que la imagen est compuesta por pxeles. Los objetos definidos por vectores pueden ser guardados y modificados en el futuro. Algunos formatos permiten animacin. Esta se realiza de forma sencilla mediante operaciones bsicas como traslacin o rotacin y no requiere un gran acopio de datos, ya que lo que se hace es reubicar las coordenadas de los vectores en nuevos puntos dentro de los ejes x, y y z en el caso de las imgenes 3D. Desventajas Los grficos vectoriales en general no son aptos para codificar fotografas o vdeos tomados en el "mundo real" (fotografas de la Naturaleza, por ejemplo), aunque algunos formatos admiten una

Vase tambin OCR Trazador de imgenes para convertir de imagen bitmap a grfico vectorial. Vector Transformada de Fourier discreta Raster Cairo Obtenido de "http://es.wikipedia.org/wiki/Gr%C3%A1fico_vectorial" Trazador de imgenes

composicin mixta (vector + imagen bitmap). Prcticamente todas las cmaras digitales almacenan las imgenes en formato rasterizado. Los datos que describen el grfico vectorial deben ser procesados, es decir, el computador debe ser suficientemente potente para realizar los clculos necesarios para formar la imagen final. Si el volumen de datos es elevado se puede volver lenta la representacin de la imagen en pantalla, incluso trabajando con imgenes pequeas. Por ms que se construya una imagen con grficos vectoriales su visualizacin tanto en pantalla, como en la mayora de sistemas de impresin, en ltima instancia tiene que ser traducida a pxeles.

Un trazador de imgenes es un programa para transformar una imagen grfica en forma de raster a un formato vectorial. Tambin se llama as a las impresoras tipo plotter, que crea las imgenes a base de trazos, no como la impresora raster comn, que lo hace mediante mltiples pequeos puntos. Programas trazadores libres: Potrace Autotrace Inkscape Vector El trmino Vector tiene distintos significados de acuerdo al contexto: en matemtica: vector, en geometra, un segmento con longitud, direccin y sentido definidos; vector, en lgebra lineal, un elemento de un espacio vectorial; vector, un conjunto ordenado de nmeros reales, o elementos de un cuerpo; en fsica: vector, magnitud fsica con longitud y direccin; en biologa: vector biolgico, un agente orgnico que sirve como medio de transmisin; vector epidemiolgico, un organismo capaz de portar y transmitir un agente infeccioso; vector gentico, un agente que porta un gen extrao o modificado. Vector de ADN es un organismo que se utiliza para transferir material gentico exgeno a otra clula;

en informtica y computacin:

vector de datos, un conjunto de variables del mismo tipo cuyo acceso se realiza por ndices; vector de interrupciones, el registro que apunta a la direccin en memoria del gestor de la interrupcin; Vector Linux, un sistema operativo, con distribucin de GNU/Linux basado en Slackware;

en otros contextos: vector, o lanzadera espacial, el vehculo de lanzamiento espacial; Vector the Crocodile, personaje de Sonic the Hedgehog SEGA. Vectorman, personaje de videojuego de la consola SEGA Genesis Vector,personaje de gunm (angel batle alita)

Grfico rasterizado Una imagen rasterizada, tambin llamada mapa de bits, imagen matricial o bitmap, es una estructura o fichero de datos que representa una rejilla rectangular de pxeles o puntos de color, denominada raster, que se puede visualizar en un monitor de ordenador, papel u otro dispositivo de representacin. A las imgenes rasterizadas se las suele caracterizar por su altura y anchura (en pixels) y por su profundidad de color (en bits por pixel), que determina el nmero de colores distintos que se pueden almacenar en cada pixel, y por lo tanto, en gran medida, la calidad del color de la imagen. Los grficos rasterizados se distinguen de los grficos vectoriales en que estos ltimos representan una imagen a travs del uso de objetos geomtricos como curvas de Bzier y polgonos, no del simple almacenamiento del color de cada pixel. El formato de imagen matricial est ampliamente extendido y es el que se suele emplear para tomar fotografas digitales y realizar capturas de vdeo. Para su obtencin se usan dispositivos de conversin analgica-digital, tales como escneres y cmaras digitales. Contenido [ocultar] 1 Colores 2 Resolucin 3 Conversin entre formatos raster y vectorial 4 Analoga en 3D

5 Referencias

6 Vase tambin Colores Resolucin

Detalle de una imagen rasterizada. Si hacemos zoom sobre esta imagen, podemos ver los cuadraditos (pixels) que la conforman. Una imagen rasterizada no se puede ampliar a cualquier resolucin sin que la prdida de calidad sea notoria. Esta desventaja contrasta con las posibilidades que ofrecen los grficos vectoriales, que pueden adaptar su resolucin fcilmente a la resolucin mxima de nuestra pantalla u otro dispositivo de visualizacin. Las imgenes rasterizadas son ms prcticas para tomar fotografas o filmar escenas, mientras que los grficos vectoriales se utilizan sobre todo para el diseo grfico o la generacin de documentos escritos. Las pantallas de ordenador actuales habitualmente muestran entre 72 y 130 pixeles por pulgada(PPI), y algunas impresoras imprimen 2400 puntos por pulgada (DPI) o ms; determinar cul es la mejor resolucin de imagen para una impresora dada puede llegar a ser bastante complejo, dado que el resultado impreso puede tener ms nivel de detalle que el que el usuario pueda distinguir en la pantalla del ordenador. Habitualmente, una resolucin de 150 a 300 pixels funciona bien para imprimir a 4 colores (CMYK). Sin embargo, existe una frmula matemtica que me permite definir esta resolucin segn el sustrato de impresin: lpi x 2 x f a/r = dpi Donde lpi, es el lineaje a utilizarse segn el sustrato, por ejemplo: 150 lpi, si son papeles recubiertos, 85 lpi para peridico, etc. 2 es un factor basado en la capacidad de rasterizacin del escanner y f a/r es la ampliacin o disminucin en que se necesita la imagen. La frmula puede utilizarse, solamente como lpi x 2 = dpi.

Conversin entre formatos raster y vectorial [editar] La transformacin de un grfico rasterizado a uno vectorial se llama vectorizacin. Este proceso normalmente se lleva a cabo o bien manualmente calcando la imagen rasterizada o bien con ayuda de un programa especfico, como por ejemplo Corel PowerTrace. El proceso inverso, convertir una imagen vectorial en un grfico rasterizado, es mucho ms sencillo y se llama rasterizacin.

El cubo de Rubik es un cuerpo tridimensional que podemos "interpretar" como un cuerpo formado por voxels. Analoga en 3D En infografa 3D (en tres dimensiones) el concepto de una rejilla plana de pixels se extiende a un espacio tridimensional formado por ladrillos cbicos llamados "voxels". En este caso, existe una reja tridimensional con elementos (cubitos) que contienen la informacin del color. A pesar de que los voxels son un concepto potente para tratar cuerpos con formas complejas exigen mucha memoria para ser almacenados. En consecuencia, a la hora de producir imagnes en tres dimensiones se utilizan ms a menudo imgenes vectoriales 3D. Referencias Tutorial de tratamiento de grficos rasterizados Facultad de Ciencias Forestales (Argentina) Vase tambin Anexo:Formatos de archivo de grficos Grfico vectorial Transformada de Fourier discreta Obtenido de "http://es.wikipedia.org/wiki/Gr%C3%A1fico_rasterizado" Categoras: Computacin grfica | Formatos grficos

Cairo (biblioteca) cairo

Desarrollador Carl Worth, cairographics.org Informacin general ltima versin estable Gnero Sistema operativo Licencia En espaol 1.6.4 11 de abril, 2008 ? Multiplataforma LGPL y MPL ? Behdad Esfahbod

En informtica, Cairo es una biblioteca grfica de la API GTK+ usada para proporcionar imgenes basadas en grficos vectoriales. Aunque cairo es una API independiente de dispositivos, est diseado para usar aceleracin por hardware cuando est disponible. Cairo deja disponibles numerosas primitivas de imgenes de segunda dimensin. A pesar de que est escrito en C, existen implementaciones en otros lenguajes de programacin, incluyendo C++, C#, Common Lisp, Haskell, Java, Python, Perl, Ruby, Scheme (Guile, Chicken), Smalltalk y muchos otros. Dada la doble licencia incluyendo la Licencia Pblica General Reducida de GNU y la Licencia Pblica de Mozilla, cairo es software libre. Contenido [ocultar] 1 Modelo grfico de Cairo o 1.1 Sustantivos o 1.2 Verbos

2 Proceso de dibujo 3 Creacin de rutas 4 Programa mnimo de ejemplo en C 5 Vase tambin 6 Enlaces externos

Modelo grfico de Cairo Para poder explicar el modelo grfico que usa Cairo se tienen que definir los conceptos que se utilizan. Se tienen los sustantivos y los verbos. Los sustantivos son objetos

abstractos o entidades en los cuales operan los verbos. Hay varios tipos de sustantivos y varios tipos de verbos. Sustantivos

Destino. El destino es la superficie sobre la cual se dibuja. Puede ser una matriz de pixeles, o un archivo SVG o PDF, o cualquier tipo de grfico. Esta superficie colecciona los elementos de los grficos mientras se van aplicando, permitiendo as construir un trabajo completo, de forma anloga a pintar sobre un lienzo. Fuente. Es la "pintura" sobre la cual se trabaja. Se muestra como una capa superior (capa negra en la imagen). Puede ser totalmente de un color, un patrn de colores, o incluso una superficie destino previamente creada. De forma contraria a una pintura real, la fuente puede contener un canal de transparencia.

Mscara. La mscara es la pieza ms importante pues controla la aplicacin de la fuente al destino. En la imagen se muestra como una pala amarilla que deja pasar la fuente. Cuando se aplica un verbo, es como si se adhiriera la fuente al destino. Siempre que la mscara lo permita, la fuente es copiada, en caso contrario, no sucede nada.

Ruta. Es cualquier cosa entre una parte de la mscara y una parte del contexto. Se manipula por medio de los verbos de ruta.

Contexto. El contexto mantiene un registro de todo lo que un verbo afecta. Mantiene una fuente, un destino y una mscara. Tambin mantiene muchas variables de ayuda como el grosor de la lnea y el estido, el tipo de fuente de letra y el tamao, etc. Tambin mantiene la ruta, la cual se transforma a una mscara cuando se usan los verbos de dibujo. Antes de que se dibuje algo con Cairo, se necesita crear un contexto. El contexto se almacena en el tipo de dato cairo_t. Cuando se crea un contexto, debe de ser ligado a una superficie, por ejemplo, una superficie de imagen si se desea crear un archivo PNG.

Verbos Trazar. La operacin cairo_stroke() toma un lpiz virtual a travs de toda la ruta. Permite transferir parte de la fuente (la lnea de la ruta) a travs de la mscara, de acuerdo al ancho de la lnea, estilo, etc. que define el contexto. Transfiere la mitad del ancho de lnea en cada lado de la ruta. cairo_set_line_width (cr, 0.1); cairo_set_source_rgb (cr, 0, 0, 0); cairo_rectangle (cr, 0.25, 0.25, 0.5, 0.5); cairo_stroke (cr); Rellenar. La operacin cairo_fill() permite pasar un hoyo de la fuente (los lmites de la ruta) a travs de la mscara. Al usar rutas complejas (rutas con mltiples subrutas , como una dona, o rutas que se intersectan), estas se ven influenciadas por las reglas de rellenado. cairo_set_source_rgb (cr, 0, 0, 0); cairo_rectangle (cr, 0.25, 0.25, 0.5, 0.5); cairo_fill (cr); Mostrar texto. La operacin cairo_show_text() forma la mscara desde cierto texto. Se usa como atajo en vez de crear una ruta con cairo_text_path() y luego usar cairo_fill() para transferirla. cairo_text_extents_t te; cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); cairo_select_font_face (cr, "Georgia", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD); cairo_set_font_size (cr, 1.2); cairo_text_extents (cr, "a", &te); cairo_move_to (cr, 0.5 - te.width / 2 - te.x_bearing, 0.5 - te.height / 2 - te.y_bearing); cairo_show_text (cr, "a"); Pintar. La operacin cairo_paint() usa una mscara que transfiere la fuente completa al destino. Algunas personas la consideran como una mscara infinitamente grande, otros no la consideran mscara, el resultado es el mismo. La operacin similar cairo_paint_with_alpha() permite transferir la fuente completa al destino, pero slo transfiere cierto porcentaje de color. cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); cairo_paint_with_alpha (cr, 0.5);

Enmascarar. Las operaciones cairo_mask() y cairo_mask_surface() permiten transferir de acuerdo al nivel de transparencia u opacidad. En las partes transparentes de la superficie, la fuente se transfiere al destino. En las partes opacas, nada se transfiere. cairo_pattern_t *linpat, *radpat; linpat = cairo_pattern_create_linear (0, 0, 1, 1); cairo_pattern_add_color_stop_rgb (linpat, 0, 0, 0.3, 0.8); cairo_pattern_add_color_stop_rgb (linpat, 1, 0, 0.8, 0.3); radpat = cairo_pattern_create_radial (0.5, 0.5, 0.25, 0.5, 0.5, 0.75); cairo_pattern_add_color_stop_rgba (radpat, 0, 0, 0, 0, 1); cairo_pattern_add_color_stop_rgba (radpat, 0.5, 0, 0, 0, 0); cairo_set_source (cr, linpat); cairo_mask (cr, radpat);

Proceso de dibujo Para poder crear una imagen, se tiene que preparar el contexto para cada uno de los verbos. Para usar cairo_stroke() o cairo_fill() se necesita primero una ruta. Para usar cairo_show_text() se tiene que posicionar el texto en su punto de insercin. Para usar cairo_mask() se necesita una segunda superficie fuente. Para las dems operaciones, incluyendo cairo_paint() slo se necesitan una fuente primaria. Hay tres tipos de fuentes principales en Cairo: colores, gradientes e imgenes. Los colores son los ms simples; usan un color uniforme en toda la fuente. Se pueden seleccionar colores sin previas preparaciones con cairo_set_source_rgb() y cairo_set_source_rgba(). Usar cairo_set_source_rgb(cr, r, g, b) es equivalente a usar cairo_set_source_rgba(cr, r, g, b,1.0) , lo cual pone el color fuente a su mximo nivel de opacidad. Los gradientes describen una progresin de colores en funcin a su lugar de inicio y de fin, adems de usar una serie de "paradas" a lo largo del camino. Los gradientes lineales se construyen a partir de dos puntos que se pasan a travs de lneas paralelas, los cuales definen los lugares de inicio y de fin. Los gradientes radiales se construyen tambin a partir de dos puntos, pero cada uno tiene un radio asociado para el crculo que define los lugares de inicio y de fin. Las paradas se agregan a los gradientes con cairo_add_color_stop_rgb() y cairo_add_color_stop_rgba() que toman un color como cairo_set_source_rgb*() y un offset para indicar donde se aplica a los lugares de referencia. Los colores entre las paradas adyacentes se promedian en el espacio para mezclarlos de forma uniforme. El comportamiente entre los lugares de referencia pueden ser controlados con cairo_set_extend().

Las imgenes pueden ser superficies cargadas desde archivos existentes con cairo_image_surface_create_from_png() o tambin pueden ser superficies creadas con Cairo en un destino anterior. La forma ms fcil de crear y usar un destino anterior como una fuente es con cairo_push_group(), con cairo_pop_group() o con cairo_pop_group_to_source(). Se usa cairo_pop_group_to_source() justo antes de seleccionar una nueva fuente, y cairo_pop_group() cuando se desea guardarlo, as que se puede seleccionar uno y otra vez con cairo_set_source().

Ejemplo de dibujo usando color cairo_set_source_rgb (cr, 0, 0, 0); cairo_move_to (cr, 0, 0); cairo_line_to (cr, 1, 1); cairo_move_to (cr, 1, 0); cairo_line_to (cr, 0, 1); cairo_set_line_width (cr, 0.2); cairo_stroke (cr); cairo_rectangle (cr, 0, 0, 0.5, 0.5); cairo_set_source_rgba (cr, 1, 0, 0, 0.80); cairo_fill (cr); cairo_rectangle (cr, 0, 0.5, 0.5, 0.5); cairo_set_source_rgba (cr, 0, 1, 0, 0.60); cairo_fill (cr); cairo_rectangle (cr, 0.5, 0, 0.5, 0.5); cairo_set_source_rgba (cr, 0, 0, 1, 0.40); cairo_fill (cr); Ejemplo de dibujo usando gradientes int i, j; cairo_pattern_t *radpat, *linpat; radpat = cairo_pattern_create_radial (0.25, 0.25, 0.1, 0.5, 0.5, 0.5); cairo_pattern_add_color_stop_rgb (radpat, 0, 1.0, 0.8, 0.8); cairo_pattern_add_color_stop_rgb (radpat, 1, 0.9, 0.0, 0.0); for (i=1; i<10; i++) for (j=1; j<10; j++) cairo_rectangle (cr, i/10.0 - 0.04, j/10.0 - 0.04, 0.08, 0.08); cairo_set_source (cr, radpat); cairo_fill (cr); linpat = cairo_pattern_create_linear (0.25, 0.35, 0.75, 0.65);

cairo_pattern_add_color_stop_rgba cairo_pattern_add_color_stop_rgba cairo_pattern_add_color_stop_rgba cairo_pattern_add_color_stop_rgba cairo_pattern_add_color_stop_rgba cairo_rectangle (cr, 0.0, 0.0, 1, 1); cairo_set_source (cr, linpat); cairo_fill (cr);

(linpat, (linpat, (linpat, (linpat, (linpat,

0.00, 0.25, 0.50, 0.75, 1.00,

1, 0, 1, 0, 1,

1, 1, 1, 0, 1,

1, 0, 1, 1, 1,

0); 0.5); 0); 0.5); 0);

Creacin de rutas Cairo siempre tiene una ruta activa. Si se llama la funcin cairo_stroke() se dibujar la ruta. Si se llama la funcin cairo_fill() se rellenar el interior de la ruta. Pero como la ruta inicial est vaca, ambas llamadas a tales funciones no representarn cambios al destino. En cada llamada a cairo_stroke() o a cairo_fill() la ruta se vaca para poder una nueva ruta. Existen versiones alternativas de las funciones anteriores las cuales no vacan la ruta para que se puede volver a utilizar, estas funciones son: cairo_stroke_preserve() y cairo_fill_preserve(). Proceso de creacin de rutas

Cuando se crean rutas, Cairo usa un sistema al estilo conecta los puntos. Comienza en 1, traza una lnea a 2, luego a 3, y as sucesivamente. Cuando se comienza una ruta o una subruta, se designa un punto el cual todava no tiene ningn otro conectado, para esto se usa la funcin cairo_move_to(). Con esto se cambia el punto de referencia actual sin realizar conexiones a otros puntos. Tambin se puede mover el punto de forma relativa con cairo_rel_move_to(). Despus de asignar el primer punto de referencia, se usan otras operaciones las cuales actualizan el punto de referencia y lo conectan de determinada forma. cairo_move_to (cr, 0.25, 0.25); Se pueden usar lneas rectas para unir los puntos de forma absoluta con cairo_line_to() o de forma relativa con cairo_rel_line_to(). El nuevo punto de referencia se actualiza, despus de tales operaciones se encuentra al final de la lnea. cairo_line_to (cr, 0.5, 0.375); cairo_rel_line_to (cr, 0.25, -0.125);

Tambin se pueden usar arcos de un crculo para crear segmentos de ruta. En este caso el punto que se especifica no est en la ruta, sino que es el centro del crculo de tal arco. Ambos puntos, el punto inicial y el punto final del crculo deben de especificarse, tales puntos se conectan en sentido de las agujas del reloj con cairo_arc() y en sentido contrario con cairo_arc_negative(). Si el punto de referencia anterior no est en la nueva curva, se agrega una lnea recta donde el arco empieza. El punto de referencia se actualiza a donde termina el arco. Slo existen versiones absolutas (no nmero negativos). cairo_arc (cr, 0.5, 0.5, 0.25 * sqrt(2), -0.25 * M_PI, 0.25 * M_PI); Tambin se pueden usar curvas de Bzier en Cairo. Si se usan, empiezan en el punto de referencia actual y uniformemente sigue la direccin hacia otros dos puntos, y finalmente llega a un tercer punto. Al igual que las lneas rectas, existen dos versiones, una absoluta que es cairo_curve_to() y una relativa que es cairo_rel_curve_to(). Cuando se usa la funcin relativa todos los puntos son relativos al punto de referencia anterior, en vez de ser relativos entre cada uno de ellos. cairo_rel_curve_to (cr, -0.25, -0.125, -0.25, 0.125, -0.5, 0); Cairo cierra la ruta trazando una lnea recta hacia el inicio de la ruta. Esta lnea puede ser til para, por ejemplo, un polgono, pero no es til para formas curvas. Una ruta abierta es una ruta continua que su punto inicial y su punto final no se encuentran donde mismo. cairo_close_path (cr);

Programa mnimo de ejemplo en C [editar] #include <cairo.h> int main (int argc, char *argv[]) { cairo_surface_t *surface; cairo_t *cr; surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 240, 80); cr = cairo_create (surface);

cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD); cairo_set_font_size (cr, 32.0); cairo_set_source_rgb (cr, 0.0, 0.0, 1.0); cairo_move_to (cr, 10.0, 50.0); cairo_show_text (cr, "Hello, world"); cairo_destroy (cr); cairo_surface_write_to_png (surface, "hello.png"); cairo_surface_destroy (surface); return 0; } Si tal archivo lo nombrramos como hello.c, la instruccin necesaria para compilarlo sera: cc -o hello $(pkg-config --cflags --libs cairo) hello.c Tras correr el programa hello el usuario obtendr una imagen PNG llamada hello.png con el texto "Hello, world" escrito en color azul. Vase tambin [editar] Portal:Software libre. Portal de software libre. Display PostScript

Enlaces externos [editar] Pgina oficial Cairo here, there and everywhere - En ingls

Obtenido de "http://es.wikipedia.org/wiki/Cairo_(biblioteca)" Categoras: Bibliotecas grficas | Bibliotecas de C | Freedesktop.org | GNOME

You might also like