1 / 50

Caracteristicas de archivos (DXF o DWG), svg y pdf

Caracteristicas de archivos (DXF o DWG), svg y pdf. GRAFICACION ROBERTO ALVARADO DE LA CRUZ SUSANA FLORES RAMIREZ JOSE DE JESUS VARGAS REYES. ESTRUCTURA GENERAL DE UN ARCHIVO. ARCHIVO DXF.

junior
Download Presentation

Caracteristicas de archivos (DXF o DWG), svg y pdf

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Caracteristicas de archivos (DXF o DWG), svg y pdf GRAFICACION ROBERTO ALVARADO DE LA CRUZ SUSANA FLORES RAMIREZ JOSE DE JESUS VARGAS REYES

  2. ESTRUCTURA GENERAL DE UN ARCHIVO

  3. ARCHIVO DXF • Los archivos DXF se componen fundamentalmente de pares de códigos y valores asociados. Mediante estos pares de códigos los archivos DFX se organizan en secciones compuestas de registros que constan de un código de grupo y elemento de datos • Los códigos denominados códigos de grupo, indican el tipo de valor que les sigue.

  4. LA ORGANIZACIÓN GENERAL DE LOS ARCHIVOS DXF ES LA SIGUIENTE • HEADER (sección). Contiene información general sobre el dibujo. Se compone de un número de versión de base de datos de AutoCAD y de una serie de variables de sistema. Cada uno de los parámetros contiene un nombre de variable y su valor asociado. • CLASSES (sección). Contiene información de las clases definidas por la aplicación, cuyas apariciones se incluyen en las secciones BLOCKS, ENTITIES y OBJECTS de la base de datos. Las definiciones de clase se fijan en la jerarquía de clases de forma permanente.

  5. TABLES (sección). Contiene las definiciones de las siguientes tablas de símbolos : APPID (tabla de identificación de las aplicaciones) • BLOCK_RECORD (tabla de referencia a bloques) • DIMSTYLE (tabla de estilos de cota) • LAYER (tabla de capas) • LTYPE (tabla de tipos de línea) • STYLE (tabla de estilos de texto) • UCS (tabla del sistema de coordenadas personales) • VIEW (tabla de visualización) • VPORT (tabla de configuración de la ventana gráfica)

  6. BLOCKS (sección). Contiene definiciones de bloques y entidades de dibujo que constituyen cada referencia a bloque del dibujo. • ENTITIES (sección). Contiene los objetos gráficos (entidades) del dibujo, incluidas las referencias a bloques (entidades insertadas). • OBJECTS (sección). Contiene los objetos no gráficos del dibujo. En esta sección es donde se almacenan todos los objetos que no sean entidades ni registros de la tabla de símbolos. Los diccionarios que contienen los estilos de MLINE y los grupos son ejemplos de entrada que aparecen en la sección OBJECTS. • THUMBNAILIMAGE (sección). Contiene los datos de imagen de vista preliminar del dibujo. Esta sección es opcional.

  7. ARCHIVO SVG • Los ficheros gráficos SVG pertenecen al tipo MIME  "image/svg-xml", y se guardan en disco con la extensión ".svg". Su código interno sigue las especificaciones XML, siendo la estructura general de un fichero SVG la siguiente: <?xmlversion="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svgwidth="200" height="200" x="0" y="0">.....Código XML/SVG...</svg>

  8. En la primera línea tenemos la declaracción de documento XML y la versión del mismo usada, que en nuestro caso es la 1.0. También encontramos la declaración standalone="no", que establece que el documento no va a tener un DTD particular asociado. • Posteriormente encontramos la definición general de tipo de documento, con la ruta en la que se encuentra el DTD elaborado por el W3C para los ficheros SVG. Esta declaración es necesaria para poder construir documentos SVG bien formados, ya que sirve para validar la correcta sintaxis de las etiquetas y la estructura del documento creado.

  9. A continuación viene el cuerpo del documento SVG, que se encuentra delimitado por la pareja de etiquetas <svg...>...</svg>, que le dice al navegador web que el documento es un gráfico SVG. Dentro de estas etiquetas incluiremos todas las declaraciones de objetos SVG que necesitemos para construir nuestro gráfico. • Dos atributos fundamentales de la etiqueta svg son width y height, que van a establecer las dimensiones del gráfico completo, es decir, del rectángulo que va a contener los elementos del mismo. Si no se especifican estas dimensiones, el gráfico ocupará toda la ventana del navegador. • Lo mismo ocurre con los atributos x e y,, que van a definir la posición que va a tener el rectángulo del gráfico (denominado lienzo o canvas), respecto la ventana del navegador web. • Es posible utilizar para todos estos atributos valores enteros (absolutos) o valores porcentuales (relativos).

  10. ARCHIVO PDF Es un formato de almacenamiento de documentos digitales independiente de plataformas de software o hardware. Este formato es de tipo compuesto (imagen vectorial, mapa de bits y texto

  11. Cuenta con una estructura interna de 4 partes • Cabecera: Información sobre la especificación del estándar PDF que se ha seguido en donde se indica, por ejemplo, la versión. • Cuerpo: Descripción de los elementos usados en las páginas del fichero. • Tabla de referencias cruzadas: Información de los elementos usados en las páginas del fichero.

  12. Coda: Indica dónde encontrar la tabla de referencias cruzadas. Hay que notar que cuando un fichero PDF es modificado y se añade nuevo contenido, éste tendrá nuevas secciones de cuerpo, tabla de referencias cruzadas y coda pero al guardar este documento podemos optimizarlo para que las secciones duplicadas se fusionen en sólo una y se reorganice el fichero.

  13. Estructura de datos de elementos primitivos

  14. Algoritmo de Bresenham Es un algoritmo creado para dibujar rectas en los dispositivos de gráficos rasterizados, como por ejemplo un monitor de ordenador, que determina qué pixeles se rellenarán, en función de la inclinación del ángulo de la recta a dibujar.

  15. Algoritmo de Bresenham Es un algoritmo preciso para la generación de líneas de rastreo que convierte mediante rastreo las líneas al utilizar solo cálculos incrementales con enteros que se pueden adaptar para desplegar circunferencias y curvas. Los ejes verticales muestran las posiciones de rastreo y los ejes horizontales identifican columnas de pixel.

  16. Analizador Diferencial Digital (algoritmo gráfico) Se usa para la interpolación lineal de variables sobre un intervalo entre un punto de comienzo y un punto de fin. Los DDAs se usan para rastreo de lineas, triangulos y polígonos. En la implementación mas simple del algoritmo DDA interpola valores en intervalo [(xinicio, yinicio), (xfin, yfin)] por calculo para cada xi las ecuaciones xi = xi−1+1, yi = yi−1 + Δy/Δx, donde Δx = xfin − xinicio y Δy = yfin − yinicio.

  17. Analizador Diferencial Digital (algoritmo gráfico) El metodo DDA puede ser implementado usando aritmética de coma flotante o entero. La implementación nativa en coma flotante requiere una suma y un redondeo para cada valor interpolado (Ej. coordenada x, y, profundidad, componente de color etc.) y resultado de salida. Este proceso es solo eficiente cuando una FPU con operaciones de suma y redondeo rápido esta disponible.

  18. Analizador Diferencial Digital (algoritmo gráfico) La operación en coma fija entero requiere dos sumas para cada cliclo de salida, y en caso de rebose de la parte fraccional, un incremento adicionar y sustraccion. La probabilidad de que rebose la parte fraccional es proporcional al radio m de los valores inicio/fin interpolados. Los DDAs son muy usados para implementaciones hardware y pueden ser pipelined para maximizar el rendimiento.

  19. Algoritmos de Generación de Circunferencias Una circunferencia se define como un conjunto de puntos que se encuentran, en su totalidad, a una distancia r de una posición central (xc, yc). Esta relación de distancia se expresa por medio del teorema de Pitarrosa en coordenadas cartesianas como

  20. Algoritmo Básico Se podría utilizar una ecuación para calcular la posición de los puntos de una circunferencia pasando a lo largo del eje de las x en pasos unitarios de xc - r a xc + r y calcular los valores correspondientes de y en cada posición como

  21. Un método para dibujar el circulo es aprovechar la simetría de los cuadrantes, dibujando solo uno y trazando los puntos simétricos en los demás cuadrantes. Para el primer cuadrante se incrementaría x de 0 a r en pasos de 1, resolviendo para cada y positiva. El trazo para un circulo con radio de 10, centrado en (0,0), utilizando este algoritmo básico, se muestra a continuación:

  22. Algoritmo Básico El resultado de esto se muestra en la siguiente figura:

  23. No obstante, este no es el mejor método para generar una circunferencia. Un problema con este planteamiento es que implica cálculos considerables en cada paso. Por otro lado, el espacio entre las posiciones de pixel trazadas no es uniforme (aliasing, con mayor concentración de pixeles cuanto mas horizontal sea la línea). Se podría ajustar el espacio al intercambiar x y y (pasar por los valores de y y calcular los valores de x) siempre que el valor absoluto de la pendiente de la circunferencia sea mayor que 1. Pero esto solo incrementa el calculo y el procesamiento que el algoritmo requiere

  24. Algoritmo de Punto Medio para la Circunferencia Al igual que en el algoritmo para el trazo de líneas de Bresenham, el métodos del punto medio calcula las posiciones de pixel a lo largo de una circunferencia utilizando adiciones y sustracciones de enteros, si se supone que los parámetros de la circunferencia se especifican en coordenadas enteras de pantalla. Se puede resumir los pasos del algoritmo de la circunferencia de punto medio como sigue:

  25. 1. Se capturan el radio r y el centro de la circunferencia (xc,yc) y se obtiene el primer punto de una circunferencia centrada en el origen como (x0,y0) = (0,r). 2. Se calcula el valor inicial del parámetro de decisión como p0 = 5/4 - r. 3. En cada posición xk, iniciando en k=0, se efectúa la prueba siguiente: Si pk < 0, el siguiente punto a lo largo de la circunferencia centrada en (0,0) es (xk+1,yk) y pk+1 = pk + 2xk+1+1 = pk + 2xk +3. De otro modo, el siguiente punto a lo largo de la circunferencia es (xk+1,yk -1) y pk+1 = pk + 2xk+1+1 - 2yk+1 = pk + 2xk - 2yk +5, donde 2xk+1 = 2xk + 2 y 2yk+1 = 2yk - 2.

  26. 4. Se determinan puntos de simetría en los siete octantes. 5. Se mueve cada posición de pixel calculada (x,y) a la trayectoria circular centrada en (xc,yc) y se traza los valores de las coordenadas x = x + xc, y = y + yc. 6. Se repiten los pasos 3 a 5 hasta que x³y.

  27. Algoritmo de Punto Medio para la Circunferencia

  28. Algoritmos de Generación de Elipses Expresado de forma ambigua, una elipse es una circunferencia alargada. Por lo tanto, las curvas elípticas se pueden generar al modificar los procedimientos para el trazo de circunferencias con el fin de considerar las diversas dimensiones de una elipse a lo largo de los ejes mayor y menor. Una elipse se define como el conjunto de puntos en que la suma de las distancias desde dos posiciones fijas (focos) sea la misma para todos los puntos.

  29. Algoritmo Básico Las ecuaciones de la elipse se simplifican, en gran medida, si se orientan los ejes mayor y menor para alinearse con los ejes de las coordenadas, como se muestra en la siguiente figura.

  30. Algoritmo Básico El parámetro rx por convención designa el eje mayor y el parámetro ry designa el eje menor. La ecuación de la elipse puede expresarse en termino de las coordenadas del centro de la elipse y los parámetros rxy ry, como Al utilizar las coordenadas polares r y q, también es posible describir la elipse en posición estándar con las ecuaciones parametricas:

  31. Algoritmo Básico Se puede aplicar consideraciones sobre la simetría para reducir aun mas los cálculos. Una elipse en posición estándar es simétrica entre cuadrantes, pero a diferencia de la circunferencia, no es simétrica entre los dos octantes de un cuadrante. De este modo, debemos calcular las posiciones de pixel a lo largo del arco elíptico a través de una cuadrante, entonces obtenemos por simetría las tres posiciones de los otros tres cuadrantes.

  32. Algoritmo de Punto Medio para la Elipse El planteamiento que se utiliza aquí es similar a aquel empleado en el despliegue de una circunferencia. Dado los parámetros rx, ry, (xc, yc), se determina los puntos (x, y) para una elipse en posición estándar centrada en el origen y luego se altera los puntos, de modo que la elipse este centrada en (xc, yc). Si se desea también desplegar la elipse en posición no estándar, entonces se podría rotar sobre las coordenadas de su centro para reorientar los ejes mayor y menor (algo que se vera mas adelante en las secciones que contemplan rotaciones).

  33. Algoritmo Básico de la Parábola El algoritmo básico para una parábola se da por la siguiente ecuación, considerando que el origen es el punto mínimo de la parábola:

  34. Algoritmo de Punto Medio para la Parábola Para aplicar el método del punto medio, se define una función de parábola como: Cualquier punto (x,y) en la frontera de la parábola satisface la ecuación Si el punto esta en el interior de la parábola, la función de la parábola es positiva.

  35. Algoritmo de Punto Medio para la Parábola

  36. SVG • El SVG permite tres tipos de objetos gráficos: • Elementos geométricos vectoriales (p.e. caminos consistentes en rectas y curvas, y áreas limitadas por ellos) • Imágenes de mapa de bits /digitales • Texto

  37. Elementos geometricos • Los elementos geométricos son objetos provistos de atributos genéricos básicos y optativos o por defecto. • Todos los objetos se encuentran enmarcados en una ventana determinada por un ancho width y un alto height valorados con enteros con origen de coordenadas en la parte superior izquierda, hacia la derecha x positiva y hacia abajo y.

  38. Atributos Todos los objetos comparten algunos atributos genéricos: • Todo elemento visual de una figura tiene un color con 4 posibles expresiones con el negro por defecto: • Nominalmente: red, yellow, blue, aqua, salmon, tomato, orange, lightgreen... • Valores hexadecimales: #ff0000, #ffff00... • Valores hexadecimales resumidos #abc=#aabbcc: #f00, #ff0... • Funcionales: enteros rgb(255,32,50)... o porcentuales rgb(100%,10%,0%)... • Toda figura tiene un borde y puede ser modificado en grosor, stroke-width, y color, stroke. • Casi todas las figuras tienen un relleno que puede ser modificado en color, fill. • Toda figura tiene una opacidad, opacity, su valor varía entre 0(transparente) y 1(opaco por defecto).

  39. Líneas El objeto línea consta básicamente de dos puntos, x1 y1 y x2 y2, entre los cuales se dibuja un segmento recto: <line ... /> • Rectángulos El objeto rectángulo consta básicamente de un punto de origen, x y, y las dimensiones del rectángulo, heightwidt: <rect ... /> • Círculo El objeto círculo consta básicamente de un punto origen, cx cy, y un radio, r: <circle ... />

  40. Elipse El objeto elipse consta básicamente de un punto origen, cx cy, un radio horizontal, rx, y un radio vertical, ry: <ellipse ... /> • Recinto El objeto recinto consta básicamente de puntos que pueden cerrar o no un espacio, estos puntos forman cadenas que se inician con M(las mayúsculas tienen el origen en el origen de coordenadas) o con m(las minúsculas tienen su origen es el punto anterior): <path d="M ... m ... M ... " /> • Imagen Se puede añadir o incrustar enlace a imágenes del tipo *.png, *.jpg o *.svg dentro de un rectángulo de parámetros x, y, width y height: <image xlink:href="..." x="..." y="..." width="..." height="..." />

  41. Texto Se puede añadir texto, a partir de: un punto base x e y, tipo de letra font-family(serif, garamond, ariel, monospace o courier), tamaño de letras font-size y estilo de letra font-style(oblique o italic): <text x="..." y="..." > ... </text> • Agrupaciones Se pueden agrupar objetos para que compartan atributos por defecto y una disposición fija en el espacio para poder duplicarlos cómodamente: <g ... >...</g> • Duplicados Se puede duplicar objetos identificados: <use xlink:href="#..." ... />

  42. Algoritmos de comprensión

  43. Shannon-Fano • En la codificación Shannon-Fano, los símbolos se ordenan del más al menos probable, y se dividen en dos subconjuntos cuyas probabilidades totales son tan próximas a ser iguales como sea posible. A continuación todos los símbolos tendrán el primer dígito de sus códigos asignados; los del primer subconjunto recibirán el “0” y los del segundo el “1”. Mientras exista algún subconjunto con más de un término, se repetirá el mismo proceso para determinar los sucesivos dígitos de sus códigos. Cuando uno de los subconjuntos ha sido reducido a un símbolo, esto significa que el código del símbolo es completo y que no formará el prefijo del código de ningún otro símbolo.

  44. Shannon-Fano El algoritmo funciona, y produce codificaciones de longitud variable bastante eficientes; cuando los dos subconjuntos producidos por una división tienen la misma probabilidad, ya que el bit de información usado para distinguirlos se usa más eficientemente. Desafortunadamente, Shannon-Fano no produce siempre códigos prefijos óptimos. La codificación Shannon-Fano se usa en el método de compresión IMPLODE, que es parte del formato de los archivos ZIP.

  45. Shannon-Fano Un arbol Shannon-Fano se construye de acuerdo a una especificación diseñada para definir una tabla de códigos efectiva. El algoritmo actual es simple: 1-. Para una lista de símbolos dada, crear su correspondiente lista de probabilidades o de frecuencias de aparición de manera que se conozca la frecuencia relativa de ocurrencia de cada símbolo. 2-. Ordenar las listas de símbolos de acuerdo a la frecuencia, con los símbolos de ocurrencia más frecuente a la izquierda y los menos comunes a la derecha.

  46. Shannon-Fano 3-. Dividir la lista en dos partes, haciendo la frecuencia total de la mitad izquierda lo más próxima posible a la de la mitad derecha. 4-. Asignar a la mitad izquierda el dígito binario “0”, y a la mitad derecha el dígito “1”. Esto significa que los códigos para los símbolos en la primera mitad empezarán con “0”, y que los códigos de la segunda mitad empezarán por “1”. 5-. Aplicar recursivamente los pasos 3 y 4 a cada una de las dos mitades, subdividiéndolas en grupos y añadiendo bits a los códigos hasta que cada símbolo se corresponde con una hoja del árbol.

  47. Run-lengthencoding • La compresión RLE o Run-lengthencoding es una forma muy simple de compresión de datos en la que secuencias de datos con el mismo valor consecutivas son almacenadas como un único valor más su recuento. Esto es más útil en datos que contienen muchas de estas "secuencias"; por ejemplo, gráficos sencillos con áreas de color plano, como iconos y logotipos. • Por ejemplo, considera una pantalla que contiene texto en negro sobre un fondo blanco. Habría muchas secuencias de este tipo con píxeles blancos en los márgenes vacíos, y otras secuencias de píxeles negros en la zona del texto. Supongamos una única línea (o scanline), con N representando las zonas en negro y B las de blanco: BBBBBBBBBBBBNBBBBBBBBBBBBNNNBBBBBBBBBBBBBBBBBBBBBBBBNBBBBBBBBBBBBBB

  48. Si aplicamos la codificación run-length a esta línea, obtendríamos lo siguiente: 12B1N12B3N24B1N14B • Interpretado esto como 12 letras B, 1 letra N , 12 letras B, 3 letras N, etc. El código run-length representa el original de 67 caracteres en tan sólo 16. Esto quiere decir que la línea original pesa 67 bytes y la cadena codificada pesa sólo 16 bytes. Esta codificación traducida a binario, cuyo principio es el mismo, se utiliza para el almacenamiento de imágenes. Incluso ficheros de datos binarios pueden ser comprimidos utilizando este método. El primer byte contiene un número que representa el número de veces que el carácter está repetido. El segundo byte contiene al propio carácter. En otros casos se codifican en un solo byte: 1 bit (0 o 1) y 7 bits para especificar el número de caracteres consecutivos.

  49. Sin embargo, sistemas de compresión más modernos a menudo usan el algoritmo de deflación u otros algoritmos basados en el LZ77, el cual tiene la ventaja de utilizar secuencias de cadenas de caracteres. • Algunos formatos que utilizan esta codificación incluyen Packbits, PCX e ILBM. • La codificación run-length realiza una compresión de datos sin pérdidas y es muy utilizado en imágenes de 8 bits indexadas (en un principio fue utilizado para imágenes en blanco y negro). No funciona tan bien en imágenes donde varía constantemente el color de los pixels como fotografías, aunque JPEG lo utiliza de forma efectiva en los coeficientes que quedan después de transformar y cuantificar bloques de imágenes. Posteriormente ha formado la base de otros sistemas de compresión como por ejemplo el CCITT grupo 3 – 1D

More Related