miércoles, 3 de diciembre de 2014

3.4 LINEAS Y SUPERFICIES CURVAS

LINEAS



La recta es una sucesión infinita o continua de puntos a lineados en una sola dirección. Es una de las primitivas gráficas en computación gráfica viene dada por la ecuación y= m. x+ b, donde m es la pendiente de la recta y v es el corte con el eje y. Como los pixeles se grafican en posiciones enteras, la línea trazada solo puede aproximar posiciones de líneas reales entre los puntos extremos especificados. Una línea recta debe dibujarse como una sucesión de pixeles.
Efecto de escalera que se produce cuando se genera una línea como una serie de pixeles

.




TRASFORMAR PRIMITIVAS EN PIXELES

Las coordenadas de los pixeles deben estar lo más cerca posible de una línea recta real. Un algoritmo debe cumplir con:
*La secuencia de pixeles debe ser lo más recta que se pueda.
*Las líneas deben tener el mismo grosor e intensidad sin importar el grado de inclinación.
*Las líneas deben dibujarse lo más rápido posible.

ALGORITMOS PARA TRAZO DE LINEAS

ALGORITMO DDA.

El analizador diferencial digital (DDA) es un algoritmo que sirve para calcular posiciones de pixeles a lo largo de una línea, mediante el uso de la ecuación.
∆y=m. ∆x
Ecuación básica de la recta y=m. x+ b m es la pendiente y v es la intersección con el eje y.

ALGORITMO DE BRESENHAM.

Calcula cual de dos pixeles es el más cercano a la trayectoria de una línea.
El pixel x (i), y(i) se divide en (xi+1,yi)(xi+1,yi+1) hay que decidir cuál pintar calculando la distancia vertical entre el centro de cada pixel y la línea real. Las posiciones de los pixeles se representan por las áreas rectangulares numeradas.


Sección de una retícula de la pantalla donde se desplegara una línea que pasara por:
(Xi, Yi)

De aquí se tiene y=m (xi+1)+b
Definimos:
d1=y- yi=m (xi+1)+b-yi
d2= (y1+1)-y=y1+1-m (xi+1)-b
La diferencia es:
Definimos pi como:
Donde c es:
Obtenemos pi+1 de pi como:




ATRIBUTOS DE LAS PRIMITIVAS DE SALIDA


Estilo de líneas

*Los atributos de estilo de línea determinan la forma en que se desplegara una línea por medio de una rutina de trazo de líneas. Los atributos de línea son su tipo, su anchura y su color.
Tipo de línea

Los atributos de línea incluyen las líneas sólidas, líneas punteadas con líneas y punteadas. El método setStrokeStyle permite cambiar el estilo de línea.
Este método acepta los siguientes valores:
a) Graphics.SOLID - línea solida
b) Graphics.DOTTED- línea de puntos

GRAPHICS 2D SETSTROKE

Un objeto basicstroke contiene información sobre la anchura de la línea, estilo de uniones, estilos finales, y estilo de punteado. Esta información se usa cuando se dibuja una Shape con el método DRAW.
La anchura de línea es la longitud de la línea medida perpendicularmente a su trayectoria. La anchura de la línea se especifica como un valor float en las unidades de coordenadas de usuario, que es equivalente 1/72 pulgadas cuando se utiliza la transformación por defecto.
Nota:
Para rellenar o puntear un gráfico primitivo, necesitamos hacer dos llamadas separadas a métodos fill o drawString para rellenar el interior y draw para dibujar el exterior. Los 3 estilos de línea usados en este ejemplo ancho, estrecho y punteado son ejemplares de:
BasicStroke:
// Sets the Stroke.
Case 0: g2.setStroke (new BasicStroke (3.0f)); break;
Case 1: g2.setStroke (new BasicStroke (8.0f)); break;
Case 2: float dash [] = {10.0f};
g2.setStroke (new BasicStroke (3.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f));
Break;
BASICSTROKE SOPORTA 3 ESTILOS DE UNIÓN:

*JOIN_BEVEL
*JOIN_MITER
*JOIN_ROUND

El estilo de finales es la decoración que se aplica cuando un segmento de línea termina.
BASICSTROKE soporta 3 estilos de finalización:*CAP_BUTT
*CAP_ROUND
*CAP_SQUARE
El elemento 0 representa el primer punteado, el elemento 1 el primer espacio, etc. La fase de punteado es un desplazamiento en el patrón de punteado, también especificado en unidades de coordenadas de usuario. La fase de punteado indica que parte del patrón de punteado se aplica al principio de la línea.


PATRÓN DE RELLENO
.

Los patrones de relleno están definidos por el atributo Paint en el contexto Graphics2d. Para seleccionar el atributo paint, se crea un ejemplar de un objeto que implemente el interface paint y eso pasa dentro del método Graphics2d setPaint.

ANCHURA DE LINEA.

La implementación de las opciones de anchura de líneas dependen del tipo de dispositivo de salida que se utilice Una línea ancha en un monitor de vídeo podría trazarse como líneas paralelas adyacentes, mientras que una graficadora de pluma podría requerir cambios de pluma. Como sucede con otros atributos puede usarse como comando de anchura de línea para fijar la anchura regular de la línea. Color de línea.
Cuando un sistema ofrece sistemas de color (o bien de intensidad) un parámetro que da el índice de color regular se incluye en la lista de valores de atributos del sistema. Método para cambiar color.
*setColor (int color)
*setColor (int rojo, int verde, int azul)

CONCLUSION:

Los despliegues de líneas y superficies curvas tridimensionales se pueden generar a partir de un conjunto de entrada de funciones matemáticas que definen los objetos o de un conjunto de puntos de datos específicos para el usuario. Cuando las funciones se especifican, un paquete puede proyectar las ecuaciones de definición para una curva hacia el plano de despliegue y trazar las posiciones de pixel a lo largo de la trayectoria de la función proyectada Para las superficies, con frecuencia se tesela una descripción funcional para producir una aproximación de enlace de polígonos a la superficie. 

BIBLIOGRAFIA:



No hay comentarios:

Publicar un comentario