Vous êtes sur la page 1sur 17

LOGO

Algoritmos bsicos
Lic. Juan Andrs Paredes
jparedesgon@gmail.com
Rellenado de reas
COMPA! LOGO
""".t#emegaller$.com
Algoritmos bsicos
Relleno de primiti%as

COMPA! LOGO
""".t#emegaller$.com
Rellenado de Polgonos
Pol&gonos con%e'o( es aquel en el que la lnea recta que une dos puntos
cualesquiera del interior del polgono permanece toda ella en el interior del
polgono.
Pol&gonos conca%o( lo inverso al anterior.
COMPA! LOGO
""".t#emegaller$.com
Algoritmos bsicos
Relleno de primiti%as

COMPA! LOGO
""".t#emegaller$.com
Algoritmos bsicos
Relleno por )can*Line

COMPA! LOGO
""".t#emegaller$.com
Rellenado de Polgonos
El proceso bsico de relleno de polgonos se realiza a travs de una lnea de
rastreo que pasa por l. Se debe determinar que pixeles de cada lnea de rastreo
estn dentro del polgono
Para cada lnea de rastreo que cruza un polgono se debe:
!ocalizar los puntos de intersecci"n de la lnea de rastreo con las aristas del
polgono
#e$inir los intervalos de llenado para cada l&nea de rastreo.
COMPA! LOGO
""".t#emegaller$.com
Rellenado de Polgonos
Algoritmo bsico de relleno de reas
!os intervalos se pueden llenar por medio de un proceso consistiendo de tres pasos:
%. Encontrar las intersecciones de la lnea de rastreo con todas las aristas del polgono.
&. 'rdenar las intersecciones aumentando la coordenadas de x.
(. !lenar los pixeles entre pares de intersecciones que estn en el interior del polgono)
usando una regla de noparidad para determinar que un punto esta dentro de una
regi"n.
Manejo del +it de Paridad
!a paridad es inicialmente par *se inicializa as PARA +A#A !,-EA de rastreo sobre el
e.e /0 / en cada intersecci"n se invierte el bit de paridad1 se dibu.a cuando la
paridad es impar) no se dibu.a si es par.
COMPA! LOGO
""".t#emegaller$.com
Relleno de Polgonos
Paso ,
Para la lista de intervalos ordenado del e.emplo *%2)%3.4)%5.4)&30) el paso ( requiere
cuatro elaboraciones:
(.% #ada una intersecci"n con un valor arbitrario $raccional de x, como determinamos
cual de los dos pixeles a los lados de la intersecci"n es interior 6
(.& +omo mane.amos el caso especial de intersecciones en coordenadas de pixel
enteras 6
(.( +omo mane.amos el caso especial en (.& para vrtices compartidos 6
(.3 +omo mane.amos el caso especial en (.& donde los vrtices de$inen una lnea
7orizontal *mximo o mnimo0 6
COMPA! LOGO
""".t#emegaller$.com
Relleno de Polgonos
Para el caso ,.-.

Si nos aproximamos por la derec7a / estamos dentro del polgono) redondeamos


7acia aba.o. *%3)4 %30

Si estamos $uera) redondeamos 7acia arriba para quedar adentro. *%5)4 %80
COMPA! LOGO
""".t#emegaller$.com
Relleno de Polgonos
Para el caso ,./.
9tilizamos el criterio de las aristas compartidas. Si el pxel del extremo izquierdo de un
tramo tiene coordenada x entera) lo de$inimos como interior1 si el pxel del extremo
derec7o tiene coordenada x entera lo de$inimos como exterior.
COMPA! LOGO
""".t#emegaller$.com
Relleno de Polgonos
Para el caso ,.,
+onsideraciones especiales en el mane.o de los vrtices con aristas compartidas
A
:
+
/
b
; /
a
< Se cambia el bit de paridad
/
b
es una /
min
/
b
; /
c
< -o se 7ace nada
/
b
es una /
max
Entonces) el paso por vrtice :)
+ambia el bit de paridad
COMPA! LOGO
""".t#emegaller$.com
Relleno de Polgonos
A
:
+
/
b
; /
a
< Se cambia el bit de paridad
/
b
es una /
min
/
b
; /
c
<Se cambia el bit de paridad
/
b
es una /
min
Entonces) el paso por vrtice :)
+ambia el bit de paridad dos veces)
Es equivalente a entrar) dibu.ar el
Punto / salir
Para el caso ,.,
+onsideraciones especiales en el mane.o de los vrtices con aristas compartidas
COMPA! LOGO
""".t#emegaller$.com
Relleno de Polgonos
A
:
+
/
a
; /
b
< -o se 7ace nada
/
a
es una /
max
/
a
; /
c
< -o se 7ace nada
/
a
es una /
max
Entonces) el paso por vrtice A
-' +A=:,A el bit de paridad
Para el caso ,.,
+onsideraciones especiales en el mane.o de los vrtices con aristas compartidas
COMPA! LOGO
""".t#emegaller$.com
Relleno de Polgonos
Para el caso (.30
Es una consecuencia directa del paso anterior si no contamos los vrtices de dic7as
aristas) /a que no son ni /
min
ni /
max
COMPA! LOGO
""".t#emegaller$.com
Relleno de Polgonos
,
>
A
:
+
#
E
? @
A
Aristas #ori0ontales
+onsiderando la arista in$erior A:. El vrtice A es un vrtice BmCn para la arista >A / A: no contribu/e. Por lo tanto) la
paridad es impar / el tramo A: se dibu.a. !a arista vertical :+ tiene su YmCn en :) pero de nuevo A: no contribu/e. !a
paridad se vuelve par / el tramo se termina. En el vrtice >) la arista ,> tiene un vertice BmCn pero la arista >A no lo
tiene) de $orma que la paridad se vuelve impar / el tramo dibu.a 7asta la arista :+. El tramo que comienza en la arista
,> / c7oca con + no ve ningun cambio en /a que es un vrtice Bmax para :+) de $orma que el tramo continua a lo largo
de la arista in$erior +#1 en #) sin embargo) la arista #E tiene un vrtice BmCn) de $orma que la paridad inicia par / el
tramo termina. En ,) la arista ,> tiene su vrtice Bmax / la arista A, tambin no contribu/e) de $orma que la paridad
comienza par / la arista superior ,A no es dibu.ado. En A) sin embargo) la arista @A tiene un vrtice BmCn) la paridad
de vuelve impar) el tramo se dibu.a desde A al pixel a la izquierda de la intersecci"n con la arista E?. ?inalmente) no
existe vrtice BmCn en @) ni en ?) de $orma que la arista ?@ no se dibu.a.
COMPA! LOGO
""".t#emegaller$.com
Rellenado de +rculos
COMPA! LOGO
""".t#emegaller$.com
Rellenado de +rculos

Vous aimerez peut-être aussi