Sei sulla pagina 1di 4

Rangel Jimnez Omar R.

Computacin Grafica Grupo 03 Algoritmo Liang-Barsky Para el recorte de lneas hay que considerar una ventana donde se realizan los clculos de las intersecciones de la lnea con las fronteras de la ventana definida. Adems para el recorte se debe tomar en cuenta varias consideraciones como: si la lnea esta en el interior o esta fuera, la lnea es paralela a una de las fronteras y otras.

Liang y Barsky disearon de manera independiente un algoritmo paramtrico de recorte de lneas rpido. Siguiendo el planteamiento de Liang-Barsky, primero escribimos las condiciones del recorte de puntos en la forma paramtrica.

Donde: Cada una de las cuatro4desigualdades se puede expresar como:

Cualquier lnea que sea paralela a una de las fronteras de recorte tiene pk = 0 para el valor de k correspondiente a esa frontera (k = 1, 2, 3 y 4 corresponden a las fronteras izquierda, derecha, superior e inferior, respectivamente).

Si, para ese valor de k, tambin encontramos qk < 0, entonces la lnea est por completo afuera de la frontera y se puede dejar de considerar. Si qk 0, la lnea se encuentra adentro de la frontera de recorte paralela

Cuando pk < 0, la extensin infinita de la lnea proviene del exterior haca el interior de la extensin infinita de esta frontera de recorte en particular.

Si pk >0, la lnea proviene del interior que haca el exterior. Para un valor no cero de pk, podemos calcular el valor de u que corresponde al punto donde la lnea que se extiende de manera infinita intersecta la extensin de la frontera k como:

Para cada lnea, podemos calcular los valores de los parmetros u1 y u2 que definen la parte de la lnea que se encuentra dentro del rectngulo de recorte. El valor de u1 se determina al buscar las aristas del rectngulo para las que la lnea proviene del exterior haca el interior (p<0). Para estas aristas, calculamos rk = qk / pk. El valor de u1 se toma como el mayor del conjunto que consiste en 0 y los distintos valores de r. Por el contrario, el valor de u2 se determina al examinar las fronteras para las que la lnea proviene del interior as el exterior (p>0). Un valor de rk se calcula para cada una de estas fronteras y el valor de u2 es el mnimo del conjunto que consiste en 1 los valores calculados de r. Si u1 > u2, la lnea se halla por completo afuera de la ventana de recorte y se puede rechazar. De otra manera, los extremos de la lnea recortada se calculan a partir de los dos valores del parmetrou. Este algoritmo se presenta en el siguiente procedimiento. Los parmetros de interseccin de lnea se inicializan para los valores u1 = 0 y u2 = 1. Para cada frontera de recorte, los valores apropiados para p y q se calculan y utilizan por la funcin para determinar si la lnea se puede rechazar o si se debe ajustar los parmetros de interseccin. Cuando p < 0, el parmetro r se utiliza para actualizar u1; cuando p < 0, el parmetro r se utiliza para actualizar u2. Si la actualizacin de u1 o u2 da como resultado u1 > u2, rechazamos la lnea. De otra manera, actualizamos el parmetro u apropiado slo si el nuevo valor da como resultado un acortamiento de la lnea. Cuando quep=0 y q<0, podemos eliminar la lnea ya que es paralela a esta frontera y se encuentra afuera de sta. Si no se ha rechazado la lnea despus de probar los cuatro valores de p y q, los extremos de la lnea recortada se determinan a partir de los valores de u1 y u2. El algoritmo Liang-Barsky se puede resumir de esta forma: P1: Inicializar los parmetros de interseccin u1=0 y u2=1 P2: Calcular p y q para cada frontera de recorte P3: Si p<0 Utilizar r para actualizar u1 Utilizar r para actualizar u2 P4: Si u1>u2 Rechazar la lnea De otra manera

Actualizamos u Si p=0 y q<0 Eliminar la lnea P5: Si no se a rechazado la lnea Determinar lnea recortada a partir de u1 y u2

Conclusin A mi parecer es un algoritmo sencillo pero interesante, me gustara que en la clase se vieran ejemplos de este tipo de algoritmos para asi poder profundizar un poco mas acerca de este tipo de algoritmos para poder ser aplicados en algn tipo de proyecto.

Bibliografa http://deinformaticaymas.blogspot.com/2009/03/recorte-de-lineas-de-liang.html