lunes, 28 de septiembre de 2009

Atributo de Primitivas de Linea

Para dibujar un punto o una linea, etc.. OpenGl usa la misma función glvertex(x,y,z) con 3 parametros que indican un punto en el espacio 3D, por ejemplo glvertex3f(0,0,0) le indicamos el punto 0,0,0 en el eje x y z. glvertex tambien puede tener 2 o 4 argumentos por ejemplo glvertex2d(x,y) nos sirve para indicar un punto en 2 dimensiones.


Entonces, la pregunta que nos podemos hacer es como sabe OpenGL que quiero dibujar un punto o una linia ? Pues bien esto se hace con las primitivas, tenemos diferente tipos de primitivas que cuando le indicamos una de ellas pues se dibuja una cosa o otra, para indicar que tipo de primitiva queremos usar llamaremos a la funcion glBegin a la que le pasaremos por parametros el tipo de primitiva que queremos emplear y al finalizar de dibujar usaremos la función glEnd para indicar el fin.



Por ejemplo si queremos dibujar quadrados le indicarremos que el tipo poligono es GL_QUADS para poder dibujar el cuadrado le indicaremos cuatro puntos del espacio. Es muy importante el orden en que dibujaremos siempre lo haremos en el orden contrario horario, sino puede ser que los resultados no sean los que nosotros esperamos.


En la siguiente tabla se muestra las primitivas que acepta la funcion glBegin
GL_POINTS
los vertices que dibujemos solo dibujaran un punto
GL_LINES
cada dos vertices dibujara una linea, si la cantidad de vertices indicados es impar se elimina el ultimo.
GL_LINE_STRIP
se usan los vertices para dibujar lineas.Despues del segundo vertice, cada vertice subsiguente especifica el punto al que se extiende la linea.
GL_LINE_LOOP
igual que GL_LINE_STRIP pero el ultimo vertice de todos se unira con el primero de todos.
GL_TRIANGLES
Dibujara triangulos cada 3 vertices, si el numero de vertices indicados no se puede dibidir en 3 ignora los ultimos.
GL_TRIANGLE_STRIP
Dibujara un triangulo con los 3 primeros vertices despues con los 2 siguientes vertices y el ultimo de los 3 anteriores vuelve a dibujar un triangulo
GL_TRIANGLE_FAN
Dibuja un abanico de triangulos. Cada vertices despues del tercero se usa para dibujar otro triangulo.
GL_QUADS
Dibujara cuadrados cada 4 vertices. Si el numero de vertices no se puede dibidir en 4 ignora los ultimos vertices.
GL_QUAD_STRIP
Dibuja cuadrados consecutivos es decir, coge los dos ultimos vertices indicados con los dos nuevos y va dibujando cuadrados.
GL_POLYGON
con los vertices que indiquemos se dibuja un poligono convexo. El ultimo vertice indicado se cierra con el primero para asegurar que ha quedado cerrado.


En la siguiente imagen podemos ver como dibujarian las primitivas de OpenGL











Entonces si queremos dibujar 3 puntos en el espacio el codigo nos puede quedar de la siguiente forma:
glBegin GL_POINTS
glvertex3f 0,0,0
glvertex3f 0,10,0
glvertex3f 100,0,0
glend
Esto dibujara 3 puntos el primero en las coordenadas x = 0, y = 0, z = 0, el segundo en x = 0, y = 10, z = 0 y por ultimo el tercero en x = 100, y = 0 y z = 0
En el ejemplo de visual basic podéis ver como funcionan las primitivas explicadas.

CARACTERES GRAFICOS

CARACTERES GRÁFICOS PARA RECUADROS

Estos parámetros permiten redefinir los caracteres gráficos utilizados en la elaboración de recuadros de tipo 1 y 2 respectivamente. Sólo son aplicables a la versión PC del sistema, y cada uno de ellos consiste en una cadena de seis caracteres que definen:

1. Los lados verticales

2. Los lados horizontales

3. La esquina superior izquierda

4. La esquina superior derecha

5. La esquina inferior izquierda

6. La esquina inferior derecha

Por ejemplo:

11=-++++

12=******

El código ASCII (acrónimo inglés de American Standard Code for Information Interchange — (Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía.
Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.

ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos que tienen efecto sobre como se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio).
Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto.
ASCII es, en sentido estricto, un código de siete bits, lo que significa que usa cadenas de bits representables con siete dígitos binarios (que van de 0 a 127 en base decimal) para representar información de caracteres. En el momento en el que se introdujo el código ASCII muchos ordenadores trabajaban con grupos de ocho bits (bytes u octetos), como la unidad mínima de información; donde el octavo bit se usaba habitualmente como bit de paridad con funciones de control de errores en líneas de comunicación u otras funciones específicas del dispositivo. Las máquinas que no usaban la comprobación de paridad asignaban al octavo bit el valor cero en la mayoría de los casos, aunque otros sistemas como las computadoras Prime, que ejecutaban PRIMOS ponían el octavo bit del código ASCII a uno.

El código ASCII define una relación entre caracteres específicos y secuencias de bits; además de reservar unos cuantos códigos de control para el procesador de textos, y no define ningún mecanismo para describir la estructura o la apariencia del texto en un documento; estos asuntos están especificados por otros lenguajes como los lenguajes de etiquetas.

PRIMITIVAS DE LLENADO DE AREAS

La tarea de los primitivos de llenado se puede separar en dos partes:

1. la decisión de que pixeles llenar (esto depende de la forma de la primitiva), y



2. la decisión mas sencilla de cual valor utilizar para el relleno.



En general, determinar que pixeles llenar consiste de tomar líneas de rastreo sucesivas que intersectan la primitiva y llenar en intervalos (spans) de pixeles adyacentes que están dentro de la primitiva de izquierda a derecha.



Para llenar un rectángulo con un color sólido, se asigna a cada pixel sobre una misma línea de rastreo desde el borde izquierdo al borde derecho el mismo valor de pixel; o sea llenamos cada intervalo de xmin a xmax. Se aprovecha de varios tipos de coherencias no solamente para convertir primitivas de 2D, pero también de 3D.



  • Los intervalos explotan la coherencia espacial (spatial coherence) de una primitiva: el hecho que las primitivas a menudo no cambian de pixel en pixel dentro de un intervalo o de línea de rastreo a línea de rastreo. Se explota esta coherencia buscando solo aquellos pixeles donde ocurren cambios.





  • Para una primitiva trazada de forma sólida, se asigna el mismo valor a todos los pixeles en un mismo intervalo, proporcionando coherencia de intervalo (span coherence).





  • Un rectángulo trazado de forma sólida también muestra una fuerte coherencia de línea de rastreo (scan-line coherence) ya que líneas de rastreo consecutivas que intersectan el rectángulo son idéntica; mas tarde se usa también coherencia de arista (edge coherence) para los lados de polígonos generales.


La capacidad de manejar múltiples pixeles en un intervalo de forma idéntica es especialmente importante porque se debe escribir el frame buffer una palabra a la vez para minimizar el numero de accesos a memoria.






Conceptos del algoritmo de relleno de áreas




El algoritmo presentado a continuación considera polígonos cóncavos al igual que convexos, incluyendo aquellos que puedan tener huecos internos o intersectados por si mismos.

La siguiente figura ilustra el procedimiento de la línea de rastreo para el llenado sólido de polígono.

domingo, 27 de septiembre de 2009

ALGORITMOS PARA TRAZOS DE LINEAS

Algoritmos para trazo de líneas

La ecuación de una recta puede anunciarse en la forma

y = m. x + b (1)

con m como pendiente de la recta y b como intercepción y.

Dado que los dos extremos de un segmento rectilíneo se especifican como (x1 , y1) y (x2 , y2), podemos determinar valores de la pendiente m y de la intersección y, b, con los siguientes cálculos:

m = (y2 - y1) / (x2 - x1) (2)

b = y1 - m. x1 (3)

Los algoritmos para desplegar líneas rectas se basan en la ecuación de la recta (1) y los cálculos que se dan en las ecuaciones (2) y (3).

Para cualquier intervalo dx de x a lo largo de una recta, podemos calcular el intervalo dy de y correspondiente de la ecuación 2 como;

dy = m . dx (4)

Esta ecuación forma la base para determinar tensiones de deflexión en dispositivos analógicos. La variación en la tensión de deflexión horizontal se hace proporcional a dx y el cambio en la tensión de deflexión vertical se hace proporcional al valor de dy calculado a partir de la ecuación 4.

Estas deflexiones se usan después para generar una línea con pendiente m entre los extremos que se especifican. Creamos un vector con cinco componentes, al que seguidamente le asignamos las coordenadas (unas cualesquiera puestas a modo de ejemplo):

Punto 2 D p1[5];

p1[0].x ← 100;
p1[0].y ← 20;
p1[1].x ← 60;
p1[1].y ← 20;
p1[2].x ← 50;
p1[2].y ← 60;
p1[3].x ← 80;
p1[3].y ← 40;
p1[4].x ← 110;
p1[4].y ← 60;

Finalmente, podemos dibujar las líneas, aprovechando un bucle:

DESDE i=0 MIENTRAS i<4>

GRAFICA DE SOBREIMPRESION

Por defecto, cuando se imprimen colores opacos que se superponen, el color situado en primer plano cubre el área que está debajo. El uso de la sobreimpresión permite evitar la creación de coberturas, ya que hace que la tinta de impresión sobreimpresa situada más al frente aparezca transparente en relación con la tinta subyacente. El grado de transparencia en la impresión depende de la tinta, el papel y el método de impresión usado. Contacte con el servicio de impresión para determinar el efecto de estas variables sobre la ilustración final.

Es recomendable realizar sobreimpresiones en las siguientes situaciones:

  • Cuando se sobreimprime tinta negra para ayudar en el registro. Dado que la tinta negra es opaca (y suele ser la última en imprimirse), no aparece distinta cuando se imprime sobre un color, a diferencia de lo que ocurre con un fondo blanco. La sobreimpresión de negro puede evitar la aparición de huecos entre las áreas negras y coloreadas de la ilustración.

  • Cuando la ilustración no comparte colores de tintas de uso frecuente y desea crear un reventado o efectos de tintas superpuestas. Al sobreimprimir mezclas de colores de cuatricromía o personalizados que no comparten tintas comunes, el color sobreimpreso se añade al color de fondo. Por ejemplo, si imprime un relleno de magenta al 100% sobre un relleno de cian al 100%, los rellenos superpuestos serán de color violeta, no magenta.

    Después de ajustar las opciones de sobreimpresión, debe utilizar el modo Previsualizar sobreimpresión (Ver > Previsualizar sobreimpresión) para ver una aproximación de cómo se imprimirán los colores de sobreimpresión. También es importante repasar los colores sobreimpresos en la ilustración separada con pruebas compuestas (donde cada separación se muestra en registro en un solo papel) o pruebas laminadas (donde las separaciones se muestran en registro en hojas de plástico independientes apiladas una encima de la otra).

    Colores cubiertos (valor por defecto) y con sobreimpresión
PostScript es un lenguaje de programación basado en un modelo de imagen (imaging model) opaco. Un fichero PostScript es un programa que debe ser interpretado (es decir: Ejecutado) en el RIP. Eso quiere decir que en PostScript todos los objetos tienen un color y que cada objeto cubre por completo los objetos que pueda haber debajo suyo.

En otras palabras: Cualquier instrucción de trazar un objeto lo hace en modo "opaco", no transparente (sí lo sería si los colores subyacentes sí aparecieran). PDF es un formato de fichero en el que se adoptó el mismo modelo de imagen hasta su versión 1.3. A partir de la versión 1.4, se adoptó un modelo de imagen transparente, en el que el último objeto dibujado puede dejar entrever en diferentes cantidades (de todo a nada) los objetos colocados debajo.

Un fichero PDF contiene los resultados de la ejecución de un fichero PostScript, escrito en un lenguaje muy similar al PostScript (pero no de programación).

jueves, 10 de septiembre de 2009

Dispositivos de Despliegue en Video



Conocidos comunmente como MONITORES, utilizan una amplia variedad de principios para la presentacion de imagenes. Cada dispositivo tiene caracteristicas definidas en relacion con su brillantez, claridad, resolucion, tiempo de respuesta y color.


El proposito de cualquier despliegue de video es proyectar una imagen sobre una pantalla.



Existen dos formas de despliegue de video:

  1. Alfanumerica (simbolos de texto, letras y numeros)
  2. Grafica(simbolos pictoricos o lineas)

El despliegue de video le proporciona al usuario un ambiente mas dinamico; ya que la informacion solicitada por el usuario puede desplegarse como figuras animadas, graficos, diagramas con claves de color o simplemente como una serie de lineas.




Tipos de dispositivos:


  • Dispositivo de exploracion por puntos: Semejantes a un televisor convencional, estos producen una imagen con una matriz de puntos coloreados, llamados pixeles, dentro de una malla o cuadricula. Cada pixel es una imagen oscura o clara dependiendo la configuracion que posea la imagen a crear, esta se crea cuando un haz de electrones se dispara sobre toda la pantalla y crea el efecto de color; aceptable para el ojo humano. La pantalla se explora 60 veces por segundo para actualizar la imagen.
  • Dispositivo VGA: (Video Graphics Array) es de 640 X 480 pixeles. Entre mas pixeles por pulgada existan mejor sera la resolucion que este dispositivo muestre y los detalles seran mas faciles de leer. Los monitores con pantallas grandes pueden crear imagenes con 1,600 pixeles de forma horizontal y 1,200 de manera vertical.













viernes, 4 de septiembre de 2009

Configuracion de Pixeles en pantalla


Un píxel o pixel (acrónimo del inglés picture element, "elemento de imagen") es la menor unidad homogénea en color que forma parte de una imagen digital, ya sea esta una fotografía, un fotograma de vídeo o un gráfico.

Ampliando lo suficiente una imagen digital (zoom), por ejemplo en la pantalla de un ordenador, pueden observarse los píxeles que componen la imagen. Los píxeles aparecen como pequeños cuadrados o rectángulos en color, en blanco o en negro, o en matices de gris. Las imágenes se forman como una matriz rectangular de píxeles, donde cada píxel forma un área relativamente pequeña respecto a la imagen total.





Para poder transformar la información numérica que almacena un píxel en un color, hemos de conocer, además de la profundidad y brillo del color (el tamaño en bits del pixel), el modelo de color que estamos usando. Por ejemplo, el modelo de color RGB (Red-Green-Blue) permite crear un color componiendo tres colores básicos: el rojo, el verde y el azul. De esta forma, en función de la cantidad de cada uno de ellos que usemos veremos un resultado u otro. Por ejemplo, el color amarillo se obtiene mezclando el rojo y el verde. Las distintas tonalidades del amarillo se obtienen variando la proporción en que intervienen ambas componentes. En el modelo RGB es frecuente que se usen 8 bits para representar la proporción de cada una de las tres componentes primarias. De esta forma, cuando una de las componentes vale 0, significa que esta no interviene en la mezcla y cuando vale 255 (28 – 1) significa que interviene aportando el máximo de ese tono.

La mayor parte de los dispositivos que se usan con un ordenador (monitor, escáner,...) usan el modelo RGB.

Un pixel alcanza los 8 bits (2^8 colores), 24 bits (2^24 colores) o 48 bits (2^40 colores), este último valor de precisión sólo se obtiene con escáners o cámaras de gama alta (que usen formato raw o tiff, no en jpg).





Practica N. 3

COMANDO CLS


Este comando es usado para limpiar la pantalla por el usuario; cuando ya se han ejecutado demasiadas instrucciones y se requiere espacio en pantalla.
COMANDO LABEL

El comando label; se utiliza para el renombramiento de archivos, carpetas o unidades que se encuentren dentro de nuestra maquina o en dispositivos que permitan la modificacion de dichos medios.




Para realiza esta operacion de manera grafica seleccionamos la unidad, carpeta o archivo; seguido de un clic derecho, se desplazara un submenu del cual eligiremos la opcion renombrar (cambiar nombre). En MSDOS simplemente colocamos la instruccion "label" cuando ya se ha determinado la unidad a cual queremos cambiarle el nombre, colocandole asi uno nuevo.