equipo 1 trazo de lineas rectas

11
2.1 TRAZO DE LINEAS RECTAS EQUIPO 1

Upload: yooliiz-rg

Post on 12-Aug-2015

248 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Equipo 1 Trazo de Lineas Rectas

2.1 TRAZO DE LINEAS RECTAS

EQUIPO 1

Page 2: Equipo 1 Trazo de Lineas Rectas

¿Qué es una línea recta? la recta o línea recta, se extiende en una misma dirección, existe en una sola dimensión

y contiene infinitos puntos; está compuesta de infinitos segmentos (el fragmento de línea más corto que une dos puntos). También se describe como la sucesión continua e indefinida de puntos en una sola dimensión, o sea, no posee principio ni fin.

Direccion 1 sola dimencion Camino mas corto entre 2 puntos Sucesion de puntos

Page 3: Equipo 1 Trazo de Lineas Rectas

tambienLa línea es el elemento básico de todo

grafismo y uno de los más usados. Representa la forma de expresión más sencilla y pura, pero también la más dinámica y variada.

Page 4: Equipo 1 Trazo de Lineas Rectas

Algoritmo de Bresenham para trazar líneas

Un algoritmo preciso y efectivo para la generación de líneas de rastreo, desarrollado por Bresenham (1965),

Page 5: Equipo 1 Trazo de Lineas Rectas

Trazado de líneas

Diferentes tipos de líneas y situaciones en que se dibujan se resuelven con técnicas diferentes.

- Líneas cortas, o líneas que corren paralelas a otras que nos sirven de referencia.

- Líneas largas. Es el caso de líneas que unen dos puntos alejados, sin ninguna otra referencia. Las primeras líneas de cualquier croquis entran en esta categoría.

Líneas cortas o líneas paralelas a otras ya existentes se las puede dibujar de un solo trazo. Primero se deben mirar bien los puntos de inicio y terminación para luego ejecutar el trazo.

Para el trazado de líneas largas vamos a dar tres técnicas que se utilizarán según las circunstancias.

Page 6: Equipo 1 Trazo de Lineas Rectas

Líneas punto a punto

La técnica más rápida es, una vez determinados los puntos a unir se comienza moviendo el lápiz desde uno de ellos hacia el otro. Mientras se hace este movimiento se debe mantener la vista sobre el punto de destino. Esto último nos permitirá conservar la dirección.

Page 7: Equipo 1 Trazo de Lineas Rectas

Líneas compuestas

Una segunda técnica es proceder mediante trazos de cinco a siete centímetros; como si se estuviesen dibujando una sucesión de líneas más cortas. La interrupción del trazo permite verificar el rumbo del trazo y se corregir si es necesario. Los trazos sucesivos no se superponen a fin de posibilitar uniformidad de espesor. Se deja una pequeñísima luz entre ellos de forma tal que apenas resulte perceptible la interrupción y mantenga el espesor uniforme

Page 8: Equipo 1 Trazo de Lineas Rectas

Líneas de construcción

Una tercera técnica, particularmente aplicable cuando se está planteando el dibujo, es utilizar líneas de tanteo. Resulta un poco más lenta que las anteriores, pero es de gran ayuda para obtener líneas rectas particularmente cuando son muy largas. Consiste en insinuar la línea en forma apenas visible con trazos muy suaves. Idealmente, solo el dibujante debería percibir esos trazos de tanteo. Se observa el resultado obtenido. Se introducen las correcciones necesarias hasta lograr definir el trayecto correcto. Entonces se comienza el trazado de la línea en forma similar al primer método, pero ahora con una guía visual. Si fuese necesario, porque se utilizaron demasiadas líneas de tanteo, se podrán borrar las que no sirven, antes del trazado definitivo

Page 9: Equipo 1 Trazo de Lineas Rectas

TRAZO DE LÍNEAS RECTAS

Las líneas en OpenGL son en realidad segmentos acotados, en lugar de la idea matemática de rectas infinitas. Su definición viene dada por la especificación del valor de sus dos vértices extremos.

Consideremos una línea recta que pasa por dos puntos P1=[20, 20] y [25,20]. Podemos calcular la línea recta que pasa por estos puntos como

(y-y1) = (y2-y1)*(x-x1)/(x2-x1)

Sustituyendo los valores tenemos

(y-20) = (21-20)*(x-20)/(25-20)

Finalmente tenemos

y = 0.2 x + 16

Podemos calcular los valores utilizando el siguiente código

void linea(int x0, int y0, int x1, int y1)

{ int x;

float dy, dx, y, m;

dy = y1 - y0;

dx = x1 - x0;

m = dy/dx;

y = y0;

for(x = x0; x <= x1; x++)

{ escribir_pixel(x, (int) floor(y+0.5) );

y +=m; } }

Note que se suma 0.5 y se calcula la parte entera para redondear la solución.

Page 10: Equipo 1 Trazo de Lineas Rectas

Podemos calcular los valores utilizando el siguiente códigovoid linea(int x0, int y0, int x1, int y1)

{ int x;

float dy, dx, y, m;

dy = y1 - y0;

dx = x1 - x0;

m = dy/dx;

y = y0;

for(x = x0; x <= x1; x++)

{ escribir_pixel(x, (int) floor(y+0.5) );

y +=m; } }

Note que se suma 0.5 y se calcula la parte entera para redondear la solución

Page 11: Equipo 1 Trazo de Lineas Rectas