Sei sulla pagina 1di 85

PRIMITIVASGRFICAS

Autor:Ing.HERNNNINAHANCO
CUSCOPER
PRESENTACIN
Elpresentetextosurgedelanecesidaddedisponerdeunmaterialbibliogrficoparael
desarrollodeaplicacionesdeComputacinGrfica.
INDICE
INTRODUCCIN
ElTextoplantealarevisindeconceptosfundamentalesdePrimitivasGrficasque
describeunaseriedealgoritmosparaeldibujodeprimitivasgrficascomolneas,curvas,
rellenadoyrecortes.Paraexplicarelmovimientodefigurasseestudianlasoperaciones
bsicasdetransformacionescomoeslatraslacin,rotacinyescalamiento.Enbasealas
operacionesdetransformacinbsicassedescribenlasoperacionesderivadascomola
reflexineinclinacin.Pararepresentacionesdevariasoperacionessecuencialesseutiliza
lastransformacionescompuestasquesonimplementadasutilizandolasmatrices
homogneas.Elconceptodeprimitivasgrficasestacompaadadeimplementacionesen
JavaycomolibreragrficaOpenGL.
CAPTULOI:LibreragrficaOpenGLyJava
CAPTULOII:Primitivasgrficas
Unaescenagrficaestcompuestaporvariosobjetosgrficos,paradescribirlaescenase
debedescribiryrepresentarcadaunodelosobjetosgrficosparaestohacemosusode
primitivasgrficasquecorrespondearepresentacindepuntos,lneas,crculos,superficies,
lneascurvas,curvastipospline,polilneas,etc.
Descripcindeobjetosgrficos
Para describir los objetos grficos de una escena debemos identificar la posicin y
orientacin de los objetos en un sistema de coordenadas de referencia en 2D o 3D,
seguidamente cada objeto es representado grficamente utilizando primitivas grficas de
puntos,lneas,curvas,rellenos,etc.

pg.1

Esimportanteconsiderarque,lascoordenadasdepantalladifierendelascoordenadasdel
sistemas de referencia por lo tanto es necesario realizar equivalencia entre los dos
sistemas. El sistema de referencia puede utilizar nmeros enteros o reales en cambio el
sistema de coordenada de pantalla solo utiliza nmeros enteros positivos y con lmites
XMAX

0
0
(3.25.6)

(2010)

YMAX
finitos,ysuorigenempiezadesdelaesquinasuperiorizquierda.
CAPITULOIII:Algoritmosdelneas
Paraeldibujodeunsegmentodelnearectadebemosconocerlosextremosdelsegmento,
para luego, identificar los puntos intermedios entre los extremos del trayecto lineal. A
continuacindescribiremosalgoritmosparaeldibujodelneas.
Algoritmopuntopendientedelarecta
Dadalaecuacinpuntopendientedelarecta:
Siendo la pendiente de la lnea y el punto de interseccin de la lnea con el eje . Si
consideramoslosdosextremosdelsegmentodelneaconlascoordenadasy,podemos
determinarlosvaloresdelapendientey(puntodeinterseccinconeleje)delasiguiente
manera:

Podemos utilizar estas ecuaciones para el dibujo de lneas rectas en un dispositivo de


visualizacin tomando un intervalo de valores en el eje o para luego determinar sus
correspondientesvaloresenelejeosegnintervaloinicialelegido.
Por ejemplo nos indican dibujar la lnea recta cuyos extremos son = (1,4) y = (9, 6)
podemostomarelintervaloenelejecuyoslmitesson1y9paraesteintervalodebemos

pg.2

identificar sus correspondientes valores en el eje . Tambin es necesario establecer un


muestreodevaloresdentrodelintervaloenelEjequepuedeservaloressucesivosquese
incrementandeunoenunoquevande1a9loslmitesdelintervalo.
Serealizaelusodelaecuacinpuntopendienteparadeterminarlosvaloresenelejepero
es necesario determinar la pendiente y la constante entonces realizamos los clculos
siguientes:

Ahora los valores de para cada valor del intervalo en el eje se calcula de la siguiente
manera:
Para

Para

Assucesivamentepodemosrealizarlasiguientetabulacin:

4.25

4.5

4.75

5.25

5.5

5.75

pg.3

Seguidamente en base a la tabla podemos dibujar la lnea en un dispositivo de


visualizacin.
9
8
7
6
5
4
3
2
1
1 2 3 4 5 6 7 8 9

Podemos apreciar que para representar los puntos en el dispositivo de visualizacin fue
necesario realizar las aproximaciones puesto que las posiciones en las pantallas solo
utilizan nmeros enteros. Por el efecto de las aproximaciones podemos apreciar una
separacindepixelesyunefectoescalonado.
Verifiquemos ahora cual sera el escenario si tomamos un intervalo en Y para determinar
suscorrespondientesvaloresenelejeX
LapendienteylaconstantebsonlosmismosqueseutilizaronaltomarunintervaloX.
Laecuacinquedebemosutilizares:

Esaspara

Esaspara

Esaspara

pg.4

Assucesivamentepodemosrealizarlasiguientetabulacin:

Seguidamente en base a la tabla podemos dibujar la lnea en un dispositivo de


visualizacin.
9
8
7
6
5
4
3
2
1
1 2 3 4 5 6 7 8 9

9
8
7
6
5
4
3
2
1
1 2 3 4 5 6 7 8 9

9
8
7
6

pg.5

5
4
3
2
1
1 2 3 4 5 6 7 8 9

ImplementacinenJava
packagegeometrias.lineas
/*
*Dibujodelneasconpendiente1<m<1
*@authorHernanNinaHanco
*/
importjavax.swing.SwingUtilities
importprimitivas.RendererPrimitiva
publicclassRendererLineaextendsRendererPrimitiva{
@Override
protectedvoiddibujarPrimitiva(){
this.lineaPuntoPendiente(5,10,10,14)
}
/*
*AlgoritmoparaeldibujodeLneaconlaecuacin
*puntopendienteconpendiente1<m<1
*/
voidlineaPuntoPendiente(intx0,inty0,intxn,intyn){
intx
floatm,b,y
//Calcularlapendienteylaconstanteb
m=(float)(yny0)/(xnx0)
b=(float)(y0m*x0)
x=x0
y=y0
//TomarelintervalodelejeXydeterminarY
while(x<=xn){

pg.6

//DibujarunpixelenlaposicinX,Y
dibujarPunto(x,Math.round(y))
//Incrementarlacoordenadax
x++
/*determinarlacoordenaday*/
y=m*x+b
}
}
/*
*AlgoritmoDDAconpendiente1<m<1
*/
voidlineaDDA(intx0,inty0,intxn,intyn){
intx
floatm,y
//Calcularlapendiente
m=(float)(yny0)/(xnx0)
x=x0
y=y0
//TomarelintervalodelejeXydeterminarY
while(x<xn+1){
//DibujarunpuntoenlacoordenadaX,Y
dibujarPunto(x,Math.round(y))
/*Determinarelsiguientepixel*/
x++
y+=m//elincrementoeslapendiente
System.out.println(x+"\t"+Math.round(y))
}
}
/*
*AlgoritmoparaeldibujodeLneaconelalgoritmode
*Bresenhamconpendiente1<m<1
*/
publicvoidlineaBresenham(intx0,inty0,intxn,intyn){
//Identificarlosvaloresx0,y0
intx=x0
inty=y0
//Calcularlaconstantesdeltax,deltay,2.deltayy2deltay
2deltax

pg.7

intdeltax=xnx0
intdeltay=yny0
intincrA=2*deltay//incrementosiPkesmenora0
intincrB=2*(deltaydeltax)
intpk=2*deltaydeltax//calcularp0
//TomarelintervalodelejeXydeterminarY
while(x<xn+1){
dibujarPunto(x,y)/*Escribirenelframebuffer*/
/*Deteminarelsiguientepixel*/
x++
if(pk<0){
pk+=incrA
}else{
y++
pk+=incrB
}
System.out.println(x+"\t"+y)
}
}
publicstaticvoidmain(String[]args){
finalRendererLineaapp=newRendererLinea()
SwingUtilities.invokeLater(
newRunnable(){
publicvoidrun(){
app.setVisible(true)
}
}

)
}
}

AlgoritmoDDA
Elalgoritmodeanlisisdiferencialdigital(DDA,DigitalDifferentialAnalizer)esunalgoritmo
dedigitalizacindelneasbasadoencalcularvaloresdeosegnunintervaloelegido.Las
lneas se muestrean a intervalos unitarios segn una de las coordenadas y los
correspondientes valores enteros ms prximos al trayecto lineal se calculan para la otra
coordenada.

pg.8

Vamosaconsiderarprimerounalneaconpendientepositiva.Silapendienteesmenoro
igualque1,muestreamosaintervalosunitariossegnelejedelasx(=1)ycalculamoslos
valoressucesivosdeycomo:
(Ecuacin2.6)
Elsubndicekadoptavaloresenteroscomenzandoen0paraelprimerpuntoe
incrementndoseenunaunidadcadavezhastaquesealcanzaelextremodelalnea.
Puestoquempuedesercualquiernmerorealentre0.0y1.0,cadavalorcalculadodey
deberedondearsealenteromsprximo,loquenosdarlaposicindeunpxelde
pantallaenlacolumnaxqueestemosprocesando.
Paralaslneasconunapendientepositivasuperiora1.0,invertimoslospapelesxeyes
decir,muestreamosaintervalosunitariosdey(=1)ycalculamoslosvaloresdex
consecutivosmediante:
(Ecuacin2.7)
Enestecaso,cadavalordexcalculadoseredondeaalaposicindepixelmscercanaen
lalneadeexploracinyactual.
LasEcuaciones2.6y2.7estnbasadasenlasuposicindequelaslneasdeben
procesarsedesdeelextremosituadomsalaizquierdahastaelextremosituadomsala
derecha.Siinvertimosesteprocesamiento,demodoquesetomecomopuntoinicialel
situadoaladerecha,entoncestendremosy,
(Ecuacin2.8)
o(cuandolapendienteseasuperiora1)tendremoscon,
(Ecuacin2.9)
SerealizarnclculossimilaresutilizandolasEcuaciones2.6a2.9paradeterminarlas
posicionesdelospxelesalolargodeunalneaconpendientenegativa.As,sielvalor
absolutodelapendienteesinferiora1yelpuntoinicialseencuentraalaizquierda,
haremosycalcularemoslosvaloresdeymediantelaEcuacin2.6.Cuandoelpuntoinicial
estaladerecha(paralamismapendiente),haremosyobtendremoslosvaloresy
utilizandolaEcuacin2.8.Paraunapendientenegativaconvalorabsolutosuperiora1,
usaremosylaEcuacin2.9oylaEcuacin2.7.
Estealgoritmoseresumeenelsiguienteprocedimiento,queaceptacomoentradados
posicionesenterasenlapantallacorrespondientesalosdosextremosdeunsegmento
lineal.Lasdiferenciashorizontalesyverticalesentrelosdosextremosseasignanalos
pg.9

parmetrosdxydy.Ladiferenciaconmayorvalorabsolutodeterminaelvalordelparmetro
steps.Partiendodelaposicin(x0,y0),determinemoseldesplazamientorequeridoencada
pasoparagenerarelsiguientepxeldelalnea.Esteprocesoseejecutaenbucleun
nmerodevecesigualasteps.Sielmdulodedxessuperioralmdulodedyyx0es
inferioraxEnd,losvaloresdelosincrementosenlasdireccionesxeyson1ym,
respectivamente.Sielcambiomayorserealizaenladireccinxperox0essuperioraxEnd,
entoncesseutilizanlosdecrementos1ymparagenerarcadanuevopuntodelalnea.En
losrestantescasos,utilizamosunincremento(odecremento)unitarioenladireccinyyun
incremento(odecremento)paraxiguala1/m.

pg.10

voidlineDDA(intx0,inty0,intxn,intyn){
intx
floatm,y
//Calcularlapendiente
m=(float)(yny0)/(xnx0)
x=x0
y=y0
//Estosolofuncionaparaunalnea
//dependientepositivaymenora1
while(x<xn+1){
//Dibujarunpixelenlaventana
dibujarPunto(x,Math.round(y))
/*Posicindelsiguientepixel*/
x++
y+=m
}
}
ElalgoritmoDDAesunmtodoparaelclculodeposicionesdepxelesmsrpidoque
implementandirectamentelaEcuacin2.1.SeeliminalamultiplicacindelaEcuacin2.1
haciendousodelaspropiascaractersticasdelprocesodedigitalizacin,aplicndoselos
incrementosapropiadosenlasdireccionesxoyparapasardeunaposicindepxelala
siguientealolargodelalnea.Sinembargo,laacumulacindeerroresderedondeoenlas
sucesivassumasdelincrementodecomaflotantepuedenhacerquelasposicionesdepxel
sufranciertaderivaconrespectoalverdaderotrayectolineal,parasegmentoslineales
largos.Adems,lasoperacionesderedondeoylaaritmticaencomaflotanteinherentesa
esteprocedimientosiguenconsumiendomuchotiempo.Podemosmejorarlavelocidaddel
algoritmoDDAseparandolosincrementosmy1/mensuspartesenterayfraccionaria,
reduciendoastodoslosclculosaoperacionesconnmerosenteros.
AlgoritmodeBresenhamparadibujodelneas
Enestaseccin,vamosapresentarunalgoritmoprecisoyeficienteparalageneracinde
lneasdigitalizadasestealgoritmo,inventadoporBresenham,utilizasloclculosenteros
paradeterminarlosincrementos.Adems,elalgoritmodeBresenhamparadibujodelneas
puedeadaptarseparadibujarcrculosyotraslneas.
pg.11

figura2.2.1:muestreoenelejex

figura2.2.2:Muestreoenelejey

LasFigurasanterioresmuestransendasseccionesdeunapantallaenlasquetenemosque
dibujardossegmentoslineales.Elejeverticalmuestralasposicionesdelaslneasde
exploracin,mientrasqueelejehorizontalidentificalascolumnasdepxeles.Muestreando
aintervalosunitariossegnelejeXenestosejemplos,necesitamosdecidirculdelasdos
posiblesposicionesdepxelestmsprximaaltrayectolinealencadapasodemuestreo.
ComenzandoapartirdelextremoizquierdomostradoenlaFigura2.2.1,necesitamos
determinarenlasiguienteposicindemuestreosidebemosdibujarelpxelcorrespondiente
alaposicin(11,11)oeldelaposicin(11,12).Deformasimilar,laFigura2.2.2muestra
untrayectolinealconpendientenegativaquecomienzaapartirdelextremoizquierdo
situadoenlaposicindepxel(50,50).Enestecaso,debemosseleccionarcomosiguiente
posicindepxellascoordenadas(51,50)o(51,49)?.
EstaspreguntasserespondenconelalgoritmodeBresenhamcomprobandoelsignodeun
parmetroenterocuyovaloresproporcionalaladiferenciaentrelasseparacionesverticales
delasdosposicionesdepxelconrespectoaltrayectolineal.
ParailustrarelalgoritmodeBresenham,vamosprimeroaanalizarelprocesode
digitalizacindelneasconpendientepositivainferiora1.0.Lasposicionesdepxelalo
largodeuntrayectolinealsedeterminanentoncesmuestreandoaintervalosunitariossegn
elejex.Comenzandoapartirdelextremoizquierdo(x0,y0)deunalneadada,vamos
recorriendocadaunadelassucesivascolumnas(posicinx)ydibujandoelpxelcuyovalor
yseamsprximoaltrayectolineal.

pg.12

L.aFigura2.2.3ilustraelpasoksimodeesteproceso.Supongaquehemosdeterminado
quehayquedibujarelpxelsituadoen(xk,yk)entoncestendremosquedecidirqupxel
dibujarenlacolumnaxk+1=xk+1.Lasdosopcionesexistentessonlospxelesdelas
posiciones(xk+1,yk)y(xk+1,yk+1).
Enlaposicindemuestreoxk+1,etiquetamoslasseparacionesverticalesdelospxeles
conrespectoaltrayectolinealmatemticoconlosnombresdlowerydupper(Figura2.2.4).
Lacoordenadaydelalneamatemticaenlacolumnadepxelxk+1secalculacomo:

d1=dupper
d2r=dlower
(Ecuacin2.10)
Entonces:
(Ecuacin2.11)
y
(Ecuacin2.12)

pg.13

Paradeterminarculdelosdospxelesestmsprximoalalnea,podemosrealizaruna
comprobacinmuyeficientequesebasaenladiferenciaentrelasdosseparacionesdelos
pxeles:
(Ecuacin2.13)
Podemosobtenerunparmetrodedecisinpkparaelpasoksimodelalgoritmode
digitalizacindelneasreordenandolaEcuacin3.13paraqueslohayaquerealizar
clculosenteros.Podemoshacerestorealizandolasustitucindonde,ysonlas
separacionesverticalyhorizontalentrelosdosextremosdelalnea,ydefiniendoel
parmetrodedecisincomo:
(Ecuacin2.14)
Elsignodeesigualaldeporqueennuestroejemplo.Elparmetroesconstanteytiene
elvalor,queesindependientedelaposicindelpxelyseeliminarenlosclculos
recursivosde.Sielpxeldeest"msprximo"altrayectolinealqueelpxelde(esdecir,
),entonceselparmetrodedecisinsernegativo.Endichocaso,dibujaremoselpxel
inferiorencasocontrario,dibujaremoselsuperior.
Loscambiosdecoordenadasalolargodelalneaseproducenenpasosunitariosenlas
direccionesxoy.Portanto,podemosobtenerlosvaloresdelossucesivosparmetrosde
decisinutilizandoclculosenterosincremntales.Enelpaso+1,elparmetrode
decisinseevalaapartirdelaEcuacin2.14como:

PerosirestamoslaEcuacin2.14destaltimaecuacin,tendremos:
Ycomo+1,nosqueda:
Ecuacin(2.15)
Dondeeltrminoes01dependiendodelsignodelparmetro.
Esteclculorecursivodelosparmetrosdedecisinserealizaencadaposicinenterax
comenzandoporelextremoizquierdodelalnea.Elprimerparmetrop0,seevalaapartir
delaEcuacin2.14enlaposicininicialdepxel(x0,y0)yconmiguala:
ResumimoselalgoritmodeBresenhamparalneasconunapendienteinferiora1enel
siguienterecuadro.Lasconstantesysecalculanunanicavezparacadalneaquehay
quedigitalizar,porloquelasoperacionesaritmticassolorequierensumasyrestasenteras
deestasdosconstantes.
pg.14

AlgoritmodeBresenhamparadibujodelneascon|m|<1.0
Introducirlosdosextremosdelalneayalmacenarelextremoizquierdoen(x0,y0).
Configurarelcolorparalaposicin(x0,y0)delbferdelaimagen,esdecir,dibujarelprimer
punto.
Calcularlasconstantes,,y,yobtenerelvalorinicialdelparmetrodedecisin,queser
Paracadaalolargodelalnea,comenzandoen=0,realizarlasiguientecomprobacin.
Si,elsiguientepuntoquehayquedibujarsery
Encasocontrario,elsiguientepuntoquehabrquedibujaresy
RealizarelPaso4veces.

ElalgoritmodeBresenhampuedegeneralizarsealneasdependientearbitraria
considerandolasimetraexistenteentrelosdiversosoctantesycuadrantesdelplanox.
Paraunalneaconpendientepositivasuperiora1.0,intercambiamoslospapelesdelas
direccionesxey.Enotraspalabras,avanzamospasoapasoporladireccinycon
incrementosunitariosycalculamoslosvaloresdexsucesivosmsprximosalatrayectoria
delalnea.Asimismo,podramostambinrevisarelprogramaparadibujarlospxeles
comenzandoapartirdecualquieradelosdosextremos.Silaposicininicialparaunalnea
conpendientepositivaeselextremoderecho,habrquedecrementartantoxcomoya
medidaqueavanzamospasoapasodederechaaizquierda.
Paragarantizarquesiempresedibujenlosmismospxelesindependientementedecul
extremoseutilicecomopuntoinicial,elegiremossiempreelpixelsuperior(oinferior)delos
doscandidatoscuandolasdosseparacionesverticalesconrespectoaltrayectodelalnea
seaniguales().Parapendientesnegativas,losprocedimientossonsimilares,salvoporque
ahoraunadelascoordenadassedecrementaamedidaquelaotraseincrementa.
Finalmente,loscasosespecialespuedentratarseporseparado:laslneashorizontales(),
laslneasverticales()ylaslneasdiagonales()puedencargarsedirectamenteenelbfer
deimagensinnecesidaddeprocesarlasmedianteelalgoritmodedibujodelneas.
CAPITULOIV:Algoritmosparalageneracindecrculos
Puestoqueelcrculoesuncomponentemuyfrecuentementeutilizadoendibujosygrficas,
muchospaquetesgrficosincluyenunprocedimientoparagenerarcrculoscompletoso
pg.15

arcoscirculares.Asimismo,enocasioneshaydisponibleunafuncingenricaenlas
bibliotecasgrficasparamostrardiversostiposdecurvas,incluyendocrculosyelipses.
Propiedadesdeloscrculos

Figurapropiedadesdelcrculo
Uncrculo(Figuraanterior)sedefinecomoelconjuntodepuntosqueseencuentranauna
distanciadeterminadaconrespectoaunaposicincentral).Paracualquierpunto)del
crculo,estarelacindedistanciaseexpresamedianteelteoremadePitgorasen
coordenadascartesianas:
Podemosutilizarestaecuacinparacalcularlaposicindelospuntossobreuna
circunferencia,recorriendoelejexenpasosunitariosdesdeaycalculandolos
correspondientesvaloresyencadaposicinmediantelafrmula:
Peroestenoeselmejormtodoparageneraruncrculo.Unodelosproblemasconeste
mtodoesquerequiereunosconsiderablesclculosencadapaso.Adems,elespaciado
entrelospxelesdibujadosnoesuniforme,comoseilustraenlasiguientefigura.

Ejemplo
Determinaryvisualizarlospuntosdeunacircunferenciaconcentroeny.

pg.16

ElmuestreoenelejeX,latabladevaloreseselsiguiente:
X
5
4
3
2
1
0
1
2
3
4
5
5
4
3
2
1
0
1
2
3
4
5

+y
0,0
3,0
4,0
4,6
4,9
5,0
4,9
4,6
4,0
3,0
0,0

y
0,0
3,0
4,0
4,6
4,9
5,0
4,9
4,6
4,0
3,0
0,0

0 1 2 3 4 5

Paramejorarelgrficopodramosajustarelespaciadointercambiandoxey(recorriendolos
valoresyycalculandolosvaloresxcuandoelvalorabsolutodelapendientedelcrculosea
superiora1.Peroestosimplementeincrementalacantidaddeclculosydeprocesamiento
requeridaporelalgoritmo.
Excentricidad
Otraformadeeliminarelespaciadodesigualesutilizandocoordenadaspolaresry.

pg.17

Ecuacindelacircunferenciaenformaparamtricapolar:

Alutilizarunpasoangularfijo,sedibujarauncrculoconpuntosequiespaciadosalolargo
detodalacircunferencia.Parareducirelnmerodeclculospodemosutilizarunagran
separacinangularentrelospuntosyconectarlospuntosmedianteunsegmentodelnea
rectaconelfindeaproximarlatrayectoriacircular.
Ejemplo.Determinaryvisualizarlospuntosdeunacircunferenciaconcentroeny
utilizandoecuacionesparamtricas.
Consideramoselngulo

Y
0

Theta
0
1
2
3
4

x
0
0,52359878
1,04719755
1,57079633
2,0943951

y
5
4
3
0
3

0
3
4
5
4
pg.18

5
6
7
8
9
10
11
12

2,61799388
3,14159265
3,66519143
4,1887902
4,71238898
5,23598776
5,75958653
6,28318531

5
4
3
2
1
0
1
2
3
4
5

4
5
4
3
0
3
4
5

3
0
3
4
5
4
3
0

0 1 2 3 4 5

Paraobteneruntrazadomscontinuoenunmonitordigital,podemosfijarcomopaso
angularelvalor.Estonosdaposicionesdepixelesqueestnseparadosaproximadamente
unaunidad.
Peroaunquelascoordenadaspolaresproporcionanunespaciadohomogneodelos
puntos,losclculostrigonomtricossiguensiendobastantelaboriosos.
Paracualquieradelosmtodosanterioressepuedereducirlosclculosutilizandola
simetraquesepresentanenloscrculos.
Laformadeloscrculosessimilarencadaunodeloscuadrantes.Portanto,si
determinamoslasposicionesdelacurvaenelprimercuadrante,podemosgenerarla
seccincirculardelsegundocuadrantedelplanoxobservandoqueambasseccionesson
simtricasconrespectoalejey.Ylasseccionescircularesdeloscuadrantesterceroy
cuartopuedenobtenerseapartirdelasseccionesdelosprimeroscuadrantesconsiderando
lasimetraconrespectoalejeX.Enbaseaesterazonamientopodemosidentificarla
simetraentreloslosoctantes.
rehacergraficodesimetriadeoctantes!!!!!

pg.19

Aprovechandotodalasimetradelcrculodeestaforma,podemosgenerartodaslas
posicionesdelpxelalrededordelcrculocalculandonicamentelospuntos
correspondientesalsectorquevadesdea.Lapendientedelacurvaenesteoctantetiene
unamagnitudigualoinferiorauno.Para,lapendientedelcrculoescero,yparala
pendientees1.0.
Considerandoloanterior,todavalosclculossiguensiendocomplejos,porlosclculoscon
trigonomtricosyraces.Porlotanto,debemosbuscaralgoritmosconparmetrosde
decisincomoBresenhamparalneasdondeserealizanclculodenmerosenteros.
PodemosadaptarelalgoritmodedibujodelneasdeBresenhamalageneracindecrculos
definiendolosparmetrosdedecisinparahallarelpxelmscercanoalacircunferencia
encadapasodemuestreo.Sinembargo,laEcuacincartesianadelcrculoesnolineal,por
ioqueharafaltacalcularracescuadradasparahallarlasdistanciasdelospxelescon
respectoalatrayectoriacircular.ElalgoritmodeBresenhamparacrculosevitaestos
clculosderacescuadradascomparandoloscuadradosdelasdistanciasdeseparacinde
lospxeles.Sinembargo,sepuederealizarunacomparacindirectadedistanciassin
necesidaddehallarracescuadradas.
Laideabsicaquesubyaceaestemtodoconsisteencomprobarsielpuntomediosituado
entredospxelesestsituadodentroofueradelcrculo.Estemtodosepuede,asimismo,
generalizarmsfcilmenteaotrascnicasyparauncrculoderadioentero,estatcnica
delpuntomediogeneralasmismasposicionesdepxelqueelalgoritmodeBresenhampara
crculos.Paraunsegmentodelnearecta,elmtododelpuntomedioescompletamente
equivalentealalgoritmodeBresenhamparalneas.Asimismo,elerrormximoalahorade
determinarlasposicionesdelospxelesparacualquierseccincnicautilizandoeltestdel
puntomedioestlimitadoaunmediodelaseparacinentrepxeles.
Algoritmodelpuntomedioparacrculos
Comoenelejemplodedigitalizacindelneas,muestreamosaintervalosunitariosy
determinadoslaposicindepxelmsprximaalatrayectoriacircularespecificada.Para
unradiordadoyunascoordenadasdelcentrodevalor,podemosprimeroejecutarel
algoritmoparacalcularlasposicionesdelospxelesalrededordeunatrayectoriacircular
centradaenelorigendecoordenadas(0,0).Despus,movemoscadaposicincalculada
(x,y)alaposicindepantallaadecuadasumando.axyay.Alolargodelaseccin
circularquevadesdex=0ax=yenelprimercuadrante,lapendientedelacurvavara
desde0a1.0.Portanto,podemostomarpasosunitariosenladireccinxpositivaalo
largodeesteoctanteyutilizarunparmetrodedecisinparadeterminarculdelasdos
posiblesposicionesdepxelencadacolumnaestmscercaverticalmentealatrayectoria
circular.Lasposicionesenlosotrossieteoctantesseobtienenentoncesporsimetra.

pg.20

Paraaplicarelmtododelpuntomedio,definimosunafuncincircularcomo:

LascomprobacionesdelaEcuacinanteriorserealizanparalospuntosintermedios
situadosenlavecindaddelatrayectoriacircularencadapasodemuestreo.As.lafuncin
generadoradelcrculoesunparmetrodecisinenelalgoritmodelpuntomedio,y
podemosdeterminarlosclculosincrementalesnecesariosparaestafuncin,comohicimos
conelalgoritmodegeneracindelneas.
Enlafiguraanteriorsemuestraelpuntomedioentrelosdospixelescandidatosparala
posicindemuestreoXy.Suponiendoqueacabamosdedibujarelpxel.necesitaremosa
continuacindeterminarsielpxelenlaposicinseencuentramscercaomslejosdel
crculoqueelsituadoenlaposicin.NuestroparmetrodedecisinserlaEcuacin
siguientedegeneracindelcrculo,evaluadoenpuntomedioentreestosdospixeles:

Si,estepuntomedioseencontrarenelinteriordelcrculoyelpxelsituadoenlalneade
exploracinestarmscercadelafronteradelcrculo.Encasocontrario,elpunto
intermedioseencuentrafueradelcrculoosobrelamismacircunferencia,y
seleccionaremoselpxelcorrespondientealalneadeexploracin.
Lossucesivosparmetrosdedecisinseobtienenutilizandoclculosincrementales.
Podemosobtenerunafrmularecursivaparaelsiguienteparmetrodedecisinevaluando
lafuncincircularenlaposicindemuestreo:
pg.21

Dondees,dependiendodelsignode.
Losincrementosparaobtenerson(siesnegativo)o.Laevaluacindelostrminosy
tambinpuedehacerseincrementalmentemediantelasfrmulas:

Enlaposicininicial(0,r),estosdostrminostienenlosvalores0y2r,respectivamente.
Cadavalorsucesivoparaeltrminoseobtienesumando2alvaloranteriorycadavalor
sucesivodeltrminoseobtienerestando2alvaloranterior.
Elparmetrodedecisininicialseobtieneevaluandolafuncindegeneracindelcrculoen
laposicininicial:

Sielradiorestespecificadocomounvalorentero,podemossimplementeredondeardela
formasiguiente:
(Pararentero)
dadoqueTodoslosincrementossonenteros.
ComoenelalgoritmodelneasdeBresenham,elmtododelpuntomediocalculalas
posicionesdelospixelesalolargodelacircunferenciautilizandosumasyrestasenteras,
suponiendoquelosparmetrosdelcrculoestnespecificadosencoordenadasenterasde
pantalla.Podemosresumirlospasosdelalgoritmodelpuntomedioparageneracinde
crculosdelaformasiguiente.

Algoritmo:
1.Introducirelvalorderyelcentrodelcrculo.Puntoinicialdelcrculo.
2.Calcularelvalorinicialdelparmetrodedecisincomo:
3.Paracadaposicincomenzandoenk=0,realizarlasiguientecomprobacin:
Si,elsiguientepuntoalolargodeuncrculocentradoen(0,0)sery
encasocontrario,elsiguientepuntodelcrculoser:y
Donde:
pg.22

4.Determinarlospuntossimtricosdelosotrossieteoctantes.
5.Movercadaposicindelpxel(x,y)calculandolatrayectoriacircularcentradaenydibujar
losvaloresdelascoordenadas:
6.Repetirlospasosdel3al5hastaque
CAPTULOV:Algoritmosparalageneracindeelipses
Entrminossimples,unaelipseesuncrculoalargado.Tambinpodemosescribiruna
elipsecomouncrculomodificadocuyoradiovaradesdeunvalormximoenunadireccin
hastaunvalormnimoenladireccinperpendicular.Lossegmentosdelnearectatrazados
enelinteriordelaelipseenestasdosdireccionesperpendicularessedenominaejemayory
menordelaelipse.
Propiedadesdelaselipses
Puededarseunadefinicinprecisadeunaelipseentrminosdeladistanciadesde
cualquierpuntodelaelipseadosposicionesfijas,denominadasfocosdelaelipse.Lasuma
deestasdosdistanciasesconstanteparatodoslospuntosdelaelipse.

SietiquetamoscomoylasdistanciasalosfocosdesdecualquierpuntoP=(x,y)dela
elipse,laecuacingeneraldelaelipsepuedeescribirse:
Expresandolasdistanciasyentrminosdelascoordenadasdelosfocosy.Tendremos:
(Ecuacin2.4.1)
Elevandoestaecuacinalcuadrado,despejandolarazcuadradarestanteyvolviendoa
elevaralcuadrado,podremosreescribirlaecuacingeneraldelaelipsedelaforma
(Ecuacin2.4.2)

pg.23

dondeloscoeficientesA,B,C,D,EyFseevalanentrminosdelascoordenadasdelos
focosydelasdimensionesdelosejesmayorymenordelaelipse.Elejemayoresel
segmentodelnearectaqueseextiendedesdeunladodelaelipsehastaelotroatravsde
losfocos.Elejemenorabarcaladimensinmspequeadelaelipse,bisecando
perpendicularmenteelejemayorensupuntomedio(centrodelaelipse)situadoentrelos
dosfocos.
Unmtodointeractivoparaespecificarunaelipseconunaorientacinarbitrariaconsisteen
introducirlosdosfocosyunpuntodelaelipse.Conestostresconjuntosdecoordenadas,
podemosevaluarlaconstantedelaEcuacin2.4.1.Entonces,sepuedencalcularlos
valoresdeloscoeficientesdelaEcuacin2.4.2yutilizarlosparagenerarlospxelesalo
largodelatrayectoriaelptica.
Lasecuacionesdelaelipsesepuedensimplificarenormementesisealineanlosejesmayor
ymenorconlosejesdecoordenadas.EnlaFigurasemuestraunaelipseenposicin
estndar,conlosejesmayorymenororientadosenparaleloalosejesxey.

Elparmetrorxdeesteejemploindicaelsemiejemayor,mientrasqueelparmetrory
indicaelsemiejemenor.LaecuacindelaelipsemostradaenlaFigurapuedeescribirseen
trminosdelascoordenadasdelcentrodelaelipseydelosparmetrosrxyrydelaforma
siguiente:
Ecuacin2.4.3
Utilizandolascoordenadaspolaresry,podemostambindescribirlaelipseensu
posicinestndarconlasecuacionesparamtricas.

pg.24

Elngulo,denominadongulodeexcentricidaddelaelipse,semidealolargodel
permetrodeuncrculocircunscrito.Si,elradiodelcrculocircunscritoes.Encaso
contrario,elcrculocircunscritotienecomoradio.

Aligualqueconelalgoritmodelcrculo,puedenutilizarseconsideracionesdesimetrapara
reducirlosclculos.Unaelipseenposicinestndarpresentasimetraentrelosdistintos
cuadrantespero,adiferenciadelcrculo,losdosoctantesdecadacuadrantenoson
simtricos.Portanto,deberemoscalcularlasposicionesdelospxelesalolargodelarco
elpticoquerecorreuncuadranteyluegoutilizarlasconsideracionesdesimetrapara
obtenerlasposicionesdelacurvaenlostrescuadrantesrestantes.

pg.25

Algoritmodelpuntomedioparalaelipse
Latcnicaquevamosautilizaressimilaralaquehemosempleadoparavisualizarelcrculo
digitalizado.Dadoslosparmetros,y,determinamoslasposicionesdelacurvaparauna
elipseenposicinestndarcentradaenelorigenyluegodesplazamostodoslospuntos
utilizandoundesplazamientoconstante,demodoquelaelipseestcentradaen.Si
queremostambinmostrarlaelipseenposicinnoestndar,podemosrotarlaalrededorde
sucentroconelfindereorientarlosejesmayorymenorenlasdireccionesdeseadas.Pero
porelmomento,vamosaconsiderarnicamentelavisualizacindeelipsesenposicin
estndar.
Elmtododelpuntomedioparalaelipseseaplicaendospartesparatodoelprimer
cuadrante.

pg.26

LaFiguramuestraladivisindelprimercuadrantedeacuerdoconlapendientedeuna
elipseconrx<ry.Procesamosestecuadrantetomandopasosunitariosenladireccinxall
dondelapendientedelacurvatengaunamagnitudinferiora1.0yluegotomandopasos
unitariosenladireccinycuandolapendientetengaunamagnitudsuperiora1.0.
Lasregiones1y2delafiguraanteriorpuedenprocesarsedediversasformas.Podemos
empezarenlaposicin(0,ry)yavanzarenelsentidodelasagujasdelrelojalolargodel
primercuadrantedelatrayectoriaelptica,pasandodeutilizarpasosunitariossegnxa
pasosunitariossegnycuandolapendienteseainferiora1.0.Alternativamente,
podramosempezaren(rx,0)yseleccionarlospuntosensentidocontrarioalasagujasdel
reloj,pasandodeutilizarpasosunitariossegnyapasosunitariossegnxcuandola
pendienteseasuperiora1.0.Situviramosvariosprocesadorestrabajandoenparalelo,
podramoscalcularlasposicionesdelospxelesenambasregionessimultneamente.
Comoejemplodeimplementacinsecuencialdelalgoritmodelpuntomedio,vamosatomar
comoposicininicial(0,ry)yarecorrerlatrayectoriadelaelipseenelsentidodelas
agujasdelrelojparatodoelprimercuadrante.
PodemosdefinirunafuncindelaelipseapartirdelaEcuacin2.4.3con(xc,yc)=(0,0),
delaformasiguiente:
Ecuacin2.4.4
quetienelassiguientespropiedades:

pg.27

As,lafuncindelaelipsesepuedeutilizarcomoparmetrodedecisinparaelalgoritmo
delpuntomedio,Encadaposicindemuestreo,seleccionamoselsiguientepxeldela
trayectoriaelpticadeacuerdoconelsignodelafuncindelaelipse,evaluadoenelpunto
medioentrelosdospxelescandidatos.
Comenzandoen(0,ry)tomamospasosunitariosenladireccinxhastaquealcanzamosla
fronteraentrelasregiones1y2.Despus,pasamosautilizarpasosunitariosenladireccin
yparaelrestodelacurvadentrodelprimercuadrante.Encadapaso,necesitamos
comprobarelvalordelapendientedelacurva.Lapendientedelaelipsesecalculaapartir
delaEcuacin2.4.4:
Enlafronteraentrelaregin1ylaregin2,y,
Portanto,habremossalidodelaregin1cuando:
LaFiguramuestraelpuntomedioentrelosdospxelescandidatosenlaposicinde
muestreoxk+1.dentrodelaprimeraregin.Suponiendoquehayamosseleccionadola
posicin(xk,yk)enelpasoanterior,determinamoslasiguienteposicinalolargodela
trayectoriaelpticaevaluandoelparmetrodedecisin(esdecir,lafuncindelaelipsedada
enlaEcuacin2.4.4)endichopuntointermedio:
Si<0,elpuntomedioestardentrodelaelipseyelpxeldelalneadeexploracinestar
msprximoalafronteradelaelipse.Encasocontrario,elpuntomedioestfueradela
elipseosobreellayseleccionaremoselpxelsituadoenlalneadeexploracin.
Enlasiguienteposicindemuestreo,elparmetrodedecisinparalaregin1seevala
como:

donde,puedeser,dependiendodelsignode.
Losparmetrosdedecisinseincrementandelaformasiguiente:

pg.28

Losincrementosparalosparmetrosdedecisinpuedencalcularseutilizandonicamente
sumasyrestas,comoenelalgoritmodeloscrculos,yaquelosvaloresparalostrminosy
puedenobtenerseincrementalmente.Enlaposicininicial,estosdostrminostienencomo
valor:
Ecuacin2.4.5
Ecuacin2.4.6
Amedidaqueseincrementanxey,losvaloresactualizadosseobtienensumandoalvalor
actualdeltrminodeincrementodelaEcuacin2.4.5yrestandodelvaloractualdel
trminodeincrementodelaEcuacin2.4.6.Losvaloresdeincrementoactualizadosse
comparanencadacasoynosmoveremosdelaregin1alaregin2cuandosesatisfaga
lacondicin.
Enlaregin1,elvalorinicialdelparmetrodedecisinseobtieneevaluandolafuncinde
laelipseenlaposicininicial:

Enlaregin2,muestreamosaintervalosunitariosenladireccinynegativayelpunto
mediosetomarahoraentrepxeleshorizontalesparacadapasodemuestreocomose
muestralaFigura.

pg.29

Paraestaregin,elparmetrodedecisinseevalacomo:

Si>0,elpuntomedioseencontrarfueradelaelipseyseleccionaremoselpxel
correspondientea.Si.elpuntomedioestarsobrelaelipseodentrodeellay
seleccionaremoslaposicindepxel
Paradeterminarlarelacinentreparmetrosdedecisinsucesivosdentrodelaregin2,
evaluamoslafuncindelaelipseenelsiguientepuntodemuestreo:

donde,vale,dependiendodelsignode.
Cuandoentramosenlaregin2,setomacomoposicininiciallaltimaposicin
seleccionadaenlaregin1.yelparmetrodedecisininicialenlaregin2serentonces:

Parasimplificarelclculode.podemosseleccionarlasposicionesdelospixelesensentido
contrarioalasagujasdelreloj,comenzandoen(,0).Lospasosunitariossetomaran
entoncesenladireccinypositiva,hastaalcanzarlaltimaposicinseleccionadaenla
regin1.

pg.30

Elalgoritmodepuntomediopuedeadaptarseparagenerarunaelipseenposicinno
estndar,utilizandolafuncindelaelipsedadaporlaEcuacinycalculandolasposiciones
delospixelesalolargodetodalatrayectoriaelptica.Alternativamente,podemosreorientar
losejesdelaelipseparaponerlosenposicinestndar,utilizandolosmtodosde
transformacinexplicadosenlossiguientesapartadosdelpresentedocumento,despusde
locualseaplicaraelalgoritmodelpuntomedioparaelipsesconelfindedeterminarlas
posicionesdelacurvafinalmente,lasposicionesdepxelcalculadasseconvertiranpara
obtenerlasposicionescorrespondientessegnlaorientacinoriginaldelaelipse.
Suponiendoquenosden,yelcentrodelaelipseencoordenadasdepantallaenteras,
slohacenfaltaclculosincrementalesenterosparadeterminarlosvaloresdelos
parmetrosdedecisinenelalgoritmodelpuntomedioparageneracindeelipses.Los
incrementos,,yseevalanunanicavezalprincipiodelprocedimiento.

Algoritmodelpuntomedioparageneracindeunaelipse
1.Introducir,yelcentrodelaelipseyobtenerelprimerpuntosobreunaelipsecentrada
enelorigen,delaformasiguiente:
2.Calcularelvalorinicialdelparmetrodedecisinenlaregin1mediantelafrmula:
3.Encadaposicindentrodelaregin1.comenzandoenk=0,realizarlasiguiente
comprobacin.Si,elsiguientepuntoalolargodelaelipsecentradaen(0,0)es

Encasocontrario,elsiguientepuntoalolargodelaelipseseryy.
con

debiendocontinuaresteprocesohastaque.
4.Calcularelvalorinicialdelparmetrodedecisinenlaregin2mediantelafrmula:
dondeeslaltimaposicincalculadaparalaregin1.
5.Encadaposicindelaregin2,comenzandoenk=0,realizarlasiguiente
comprobacin.Si>0,elsiguientepuntoalolargodelaelipsecentradaen(0,0)sery

Encasocontrario,elsiguientepuntoalolargodelaelipsesery

pg.31

utilizandolosmismosclculosincrementalesparaxeyqueenlaregin1.Esteproceso
debecontinuarhastaquey=0.
6.Paraambasregiones,determinarlospuntossimtricosenlosotrostrescuadrantes.
7.Movercadaposicindepxel(x,y)calculadaalatrayectoriaelpticacentradaen(xc,yc)
ydibujarlosvaloresdecoordenadas:

EjemploDibujodeunaelipsemedianteelalgoritmodelpuntomediodadoslosparmetros
deentradaparalaelipserx=18yry=16.

pg.32

CAPTULOVI:Primitivasderellenadodereas
Otroelementotil,ademsdelospuntos,lossegmentoslinealesylascurvas,parala
descripcindeloscomponentesdeunaimagensonlasreasrellenasconalgncolor
homogneoopatrn.Unelementodeimagendeestetiposedenominanormalmenterea
rellena.Lamayoradelasveces,lasreasrellenasseutilizanparadescribirlassuperficies
delosobjetosslidos,perotambinresultantilesendiversasotrasaplicaciones.
Asimismo,lasregionesrellenassuelensersuperficiesplanas,principalmentepolgonos.
Peroentrminosgeneraleshaymuchostiposdeformasposiblesparaunaregindeldibujo
quepodamosquererrellenarconalgndeterminadocolor.
Aunquepuedenexistirreasrellenasdecualquierforma,lasbibliotecasgrficasnosuelen
soportarlaespecificacindeformasderellenoarbitrarias.Lamayoradelasrutinasde
bibliotecarequierenquelasreasderellenoseespecifiquenenformadepolgonos.Las
rutinasgrficaspuedenprocesarmseficientementelospolgonosqueotrostiposdereas
derelleno,porquelasfronterasdelospolgonossedescribenmedianteecuacioneslineales.
Adems,lamayoradelassuperficiescurvaspuedenaproximarserazonablementebien
medianteunaseriedeparchespoligonales,delamismaformaqueunalneacurvapuede
aproximarsemedianteunconjuntodesegmentoslineales.Ycuandoseaplicanefectosde
iluminacinyprocedimientosdesombreadodesuperficies,lasuperficiecurvaaproximada
puedemostrarseconungradoderealismobastantebueno.Laaproximacindeuna
superficiecurvamediantecaraspoligonalessedenominaenocasionesteselacindela
superficie,oajustedelasuperficiemedianteunamallapoligonal.Lavisualizacindetales
tiposdefiguraspuedegenerarsemuyrpidamentemediantevistasalmbricas,queslo
muestranlasaristasdelospolgonosconelfindeproporcionarunaindicacingeneraldela
estructuradelasuperficie.Posteriormente,elmodeloalmbricopuedesombrearsepara
generarunaimagendeunasuperficiematerialconaspectonatural.Losobjetosdescritos
conunconjuntodeparchesdesuperficiepoligonalessesuelendenominarobjetosgrficos
estndarosimplementeobjetosgrficos.
Engeneral,podemoscrearreasrellenasconcualquierespecificacindecontorno,como
porejemplouncrculoounconjuntoconectadodeseccionesdecurvasdetipospline.Y
algunosdelosmtodospoligonalesexplicadosenlasiguienteseccinpuedenadaptarse
paramostrarreasderellenoconcontomosnolineales.
2.5.1.reasderellenopoligonales
Desdeelpuntodevistamatemtico,unpolgonosedefinecomounafiguraplana
especificadamedianteunconjuntodetresomspuntos,denominadosvrtices,quese
conectanensecuenciamediantesegmentoslineales,denominadosbordes,oaristasdel
polgono.Adems,engeometrabsica,esnecesarioquelasaristasdelpolgonono
tenganningnpuntoencomnapartedelosextremos.As,pordefinicin,unpolgono
pg.33

debetenertodossusvrticesenunmismoplanoylasaristasnopuedencruzarse.Como
ejemplosdepolgonospodemoscitarlostringulos,losrectngulos,losoctgonosylos
decgonos.Algunasveces,cualquierfiguraplanaconuncontornodetipopolilneacerrado
sedenominatambinpolgono,ysiademssusaristasnosecortanseledenomina
polgonoestndaropolgonosimple.Paratratardeevitarreferenciasambiguas
alosobjetos,utilizaremoseltrminopolgonoparareferirnosexclusivamentealasformas
planasquetienenuncontornodetipopolilneacerradayenelquelasaristasnosecortan.
Paraunaaplicacininfogrfica,esposiblequeunconjuntodesignadodevrticesdeun
polgononocaiganexactamenteenunmismoplano.Estopuededebersealoserroresde
redondeoenelclculodelosvaloresnumricos,aerroresenlaseleccindelas
coordenadasdelosvrticeso,msnormalmente,alaaproximacindeunasuperficiecurva
medianteunconjuntodeparchespoligonales.Unaformaderectificaresteproblema
consistesimplementeendividirlamalladesuperficieespecificadaenunaseriede
tringulos.Peroenalgunoscasospuedehaberrazonespararetenerlaformaoriginaldelos
parchesdelamalla,asquesehandesarrolladomtodosparaaproximarunaforma
poligonalnoplanamedianteunafiguraplana.
Clasificacionesdelospolgonos
Unngulointeriordeunpolgonoesunngulodentrodelcontornodelpolgonoqueest
formadopordosaristasadyacentes.Sitodoslosngulosinterioresdeunpolgonoson
menoresoigualesque180,elpolgonoesconvexo.Unadefinicinequivalentede
polgonoconvexoeslaquedicequeelinteriordelpolgonoestcompletamentecontenido
enunodelosladosdelalneadeextensininfinitadecualquieradesusaristas.
Asimismo,siseleccionamoscualesquieradospuntosdelinteriordeunpolgonoconvexo,el
segmentodelneaqueunelosdospuntosseencuentratambinenelinteriordelpolgono.
Unpolgonoquenoesconvexosedenominacncavo.Dibujarejemplosdepolgonos
convexosycncavos.
Amenudoseutilizaeltrminopolgonodegeneradoparadescribirunconjuntodevrtices
quesoncolinealesoenelquealgunosdelosvrticessoncoincidentes.Losvrtices
polilinealesgeneranunsegmentodelnea,mientrasquelosvrticesrepetidospueden
generarunaformapoligonalconlneasextraas,aristassolapadasoaristasdelongitud0.
Algunasvecesseaplicatambineltrminopolgonodegeneradoaunalistadevrticesque
contienenmenosdetresvrtices.
Paraserrobusto,unpaquetegrficopodrarechazarlosconjuntosdevrticesdegenerados
onoplanares,peroestorequierepasosdeprocesamientoadicionalesparaidentificarestos
problemas,porloquelossistemasgrficossuelendejardichotipodeconsideracionesal
programador.

pg.34

Lospolgonoscncavostambinpresentanproblemas.Laimplementacindelosalgoritmos
derellenadoydeotrasrutinasgrficasesmscomplicadaparalospolgonoscncavos,por
loquesuelesermseficientepartirunpolgonoenunconjuntodepolgonosconvexos
antesdecontinuarconsuprocesamiento.Aligualquesucedeconotrosalgoritmosde
preprocesamientodepolgonos,ladivisindepolgonoscncavosnosueleincluirseenlas
bibliotecasgrficas.Algunospaquetesgrficos,incluyendoOpenGL,requierenquetodos
lospolgonosrellenosseanconvexos,mientrasqueotrossistemassloaceptanreasde
rellenotriangulares,quesimplificanenormementemuchosdelosalgoritmosde
visualizacin.
Unpolgonocncavotienealmenosunodesusngulosinterioressuperiora180.
Asimismo,laextensindealgunasaristasdeunpolgonocncavosecortarconotras
aristas,yalgunasparejasdepuntosdelinteriordelpolgonoproducirunsegmentodelnea
queinterceptaalcontornodelpolgono.Portanto,podemosutilizarcualquieradeestas
caractersticasdeunpolgonocncavocomobaseparaconstruirunalgoritmode
identificacin.
Siasignamosunvectoracadaaristadeunpolgono,podemosutilizarelproductovectorial
delasaristasadyacentesparacomprobarlaconcavidad.Todosesosproductosvectoriales
tendrnelmismosigno(positivoonegativo)enlospolgonosconvexos.Portanto,sialgn
productovectorialnosdaunvalorpositivoyotronosdaunvalornegativo,tendremosun
polgonocncavo.LaFigurailustraelmtododelproductovectorialdelosvectoresdelas
aristasparalaidentificacindepolgonoscncavos.

pg.35

Otraformadeidentificarunpolgonocncavoconsisteenexaminarlasposicionesdelos
vrticesdelpolgonoenrelacinconlalneadeextensindecualquierarista.Sialgunosde
losvrticesseencuentranaunladodelalneadeextensinyotrosestnenelotrolado,el
polgonosercncavo.
Divisindelospolgonoscncavos
Unavezidentificadounpolgonocncavo,podemosdividirloenunconjuntodepolgonos
convexos.Estopuederealizarseutilizandolosvectoresdelasaristasylosproductos
vectorialescorrespondientes.Alternativamente,podemosutilizarlasposicionesdelos
vrticesenrelacinconlalneadeextensindeunaaristaparadeterminarquvrticesse
encuentranenunladodelalneayculesestnenelotro.Paralossiguientesalgoritmos,
vamosasuponerquetodoslospolgonosseencuentranenelplanoxy.Porsupuesto,la
posicinoriginaldeunpolgonodescritaencoordenadasuniversalespuedenoestarenel
planoxyperosiemprepodemosmoverlohastaeseplanoutilizandolosmtodosde
transformacin.
Conelmtodovectorialparadividirunpolgonocncavo,primeronecesitamosformarlos
vectoresdelasaristas.Dadasdosposicionesdevrticeconsecutivas,y,definimosel
vectordelaaristaquelosunedelaformasiguiente:
Acontinuacincalculamoslosproductosvectorialesdelossucesivosvectoresdelas
aristas,siguiendoelordendelpermetrodelpolgono.SilacomponenteZdealgnproducto
vectorialespositivamientrasqueotrosproductosvectorialestienenunacomponentez
negativa,elpolgonoescncavo,mientrasqueencasocontrarioelpolgonoserconvexo.
Estopresuponequenohayatresvrticessucesivosolineales,yaqueenesecasoel
productovectorialdelosdosvectoresrepresentativosdelasaristasqueconectanestos
vrticessercero.Sitodoslosvrticessoncolineales,tendremosunpolgonodegenerado
(unalnearecta).Podemosaplicarelmtodovectorialprocesandolosvectoresdelas
aristasensentidocontrarioalasagujasdelreloj.Sicualquieradelosproductosvectoriales
tieneunacomponenteznegativa(comolaFigura),elpolgonosercncavoypodemos
partirloutilizandolalneadelprimerodelosvectoresconlosquesehacalculadoel
productovectorial.
Elsiguienteejemploilustraestemtodoparaladivisindeunpolgonocncavo.

pg.36


Tambinpodemosdividirunpolgonocncavoutilizandounmtodorotacional.Vamosa
movernosensentidocontrarioalasagujasdelrelojsiguiendolasaristasdelpolgono,y
vamosadesplazarlaposicindelpolgonodemodoquecadavrticeseencuentrepor
tumoenelorigendecoordenadas.Acontinuacin,rotamoselpolgonoalrededordelorigen
enelsentidodelasagujasdelreloj,demodoqueelsiguientevrticeseencuentresobreel
ejex.Sielsiguientevrtice,,estpordebajodelejex,elpolgonosercncavo.Eneste
caso,partiremoselpolgonosegnelejexparaformardosnuevospolgonosyrepetiremos
eltestdeconcavidadparacadaunodelosdosnuevospolgonos.Lospasosanterioresse
repitenhastaquehayamoscomprobadotodoslosvrticesdelalistadepolgonos.La
Figurailustraelmtodorotacionalparaladivisindeunpolgonocncavo.

pg.37

Divisindeunpolgonoconvexoenunconjuntodetringulos
Unavezobtenidalalistadevrticesparaunpolgonoconvexo,podemostransformarloen
unconjuntodetringulos.Estopuedehacerseseleccionandoprimerocualquiersecuencia
detresvrticesconsecutivosyformandoconellaunnuevopolgono(untringulo).
Entoncesseborraelvrticeintermediodeltringulodelalistadevrticesoriginal,
volvindoseaaplicarelmismoprocedimientoaestalistadevrticesmodificadapara
extraerotrotringulo.Continuamosformandotringulosdeestaformahastaqueelpolgono
originalquedereducidoaslotresvrtices,quedefinirnelltimotringulodelconjunto.Un
polgonocncavotambinpuededividirseenunconjuntodetringulosutilizandoesta
tcnica,siempreycuandolostresvrticesseleccionadosencadacasoformenunngulo
interiorqueseainferiora180(unnguloconvexo).
2.6.Generacindecaracteres.
Lasimgenesgrficasincluyenamenudoinformacintextual,comoporejemploetiquetas,
grficas,cartelesenedificiosovehculoseinformacingeneraldeidentificacinpara
aplicacionesdesimulacinyvisualizacin.Lamayoradelospaquetesgrficosincluyen
rutinasparagenerarprimitivasdecaracteresgrficos.Algunossistemasproporcionanun
amplioconjuntodefuncionesdecaracteres,mientrasqueotrossloofrecenunsoportede
generacindecaracteresmnimo.
Lasletras,losnmerosyotroscaracterespuedenmostrarsecondiversostamaosy
estilos,elestiloglobaldediseoparaunconjunto(ofamilia)decaracteressedenominatipo
pg.38

deletra.Hoyenda,haydisponiblesmilesdetiposdeletradistintosparaaplicaciones
informticas,comoporejemploCourier,Helvtica,NewYork,PalatinooZapfChancery.
Originalmente,eltrminofuentehacareferenciaaunconjuntodecaracteresextruidosen
metalconuntamaoyformatoconcretos,comoporejemploCourierItlicade10puntoso
PalatinoNegritade12puntos.Unafuentede14puntostieneunaalturatotaldelos
caracteresdeunos0,5centmetrosenotraspalabras72puntosesaproximadamente
equivalentea2,54centmetros(unapulgada).
Hoyenda,seusanlostrminosfuenteytipodeletrademaneraintercambiable,yaquelas
tareasmodernasdeimpresinraramenteserealizanconcaracteresextruidosenmetal.
Lostiposdeletra(ofuertes)puedendividirseendosampliosgrupos:serifysansserif.Un
tiposeriftienepequeaslneasoacentosenlosextremosdelosprincipalestrazosdelos
caracteres,mientrasquelostipossansserifnotieneestetipodeacentos.Lostiposserif
songeneralmentemslegiblesesdecir,esmsfcilleergrandesbloquesdetexto.Por
otraparte,loscaracteresindividualesdelostipossansserifsonmsfcilesdereconocer,
porloqueestetipodeletraresultaadecuadaparaetiquetasycortosencabezados.
Lasfuentestambinseclasificandependiendodesisonmonoespaciadasoproporcionales.
Todosloscaracteresdeunafuentemonoespaciadatienenlamismaanchura,mientrasque
enunafuenteproporcionallaanchuradeloscaracteresvara.
Seutilizandosrepresentacionesdiferentesparaalmacenarfuentesenunacomputadora.
Unmtodosimplepararepresentarlasformasdeloscaracteresenuntipodeletraconcreto
consisteendefinirunpatrndevaloresbinariossobreunacuadrcularectangular.
Entonces,eseconjuntodecaracteressedenominafuentedemapadebits.Unconjuntode
caracteresdemapadebitstambinsedenominaenocasionesfuentersterofuente
digitalizada.
Otroesquemamsflexibleconsisteendescribirlasformasdeloscaracteresutilizando
seccionesdelnearectasydecurvas,comoporejemploenPostScript,enestecaso,el
conjuntodecaracteressedenominafuentedecontornoofuentedetrazos.Lafigurailustra
losdosmtodosparalarepresentacindecaracteres.Cuandoseaplicaelpatrndela
parteizquierdadelaFiguraaunreadelbferdeimagen,losbitsconvalor1designanqu
posicionesdepxelhayquemostrarenuncolorespecificado.Paravisualizarlaformadel
carcterdelapartedeladerechadelaFigura,elinteriordelcontornodecarctersetrata
comounreaderelleno.

pg.39

Lasfuentesdemapadebitssonlasmssimplesdedefinirydevisualizar:bastacon
asignarlascuadrculasdecaracteresaunaposicindentrodelbferdeimagen.Sin
embargo,engeneral,lasfuentesdemapadebitsrequierenmsespaciode
almacenamiento,yaqueesnecesarioguardarcadavariante(tamaoyformato)dentrode
unacachdefuentes.Sepuedengenerardiferentestamaosyotrasvariaciones,comopor
ejemplonegritaeitlicaapartirdeunconjuntodefuentesenmapadebits,perolos
resultadosqueseobtienennosuelenserbuenos.Podemosincrementarodecrementarel
tamaodelmapadebitsdeuncarctersolamenteenmltiplosenterosdeltamaodel
pxel.Siqueremosdoblareltamaodeuncarcter,tenemosquedoblarelnmerode
pxelesdelmapadebits,conloquelosbordesdelcarctertendrnunaapariencia
escalonada.
Porcontrasteconlasfuentesdemapadebits,lasfuentesdecontornopueden
incrementarsedetamaosindistorsionarlaformadeloscaracteres.Adems,estasfuentes
requierenmenosespaciodealmacenamiento,porquenohacefaltaunacachdefuente
separadaparacadaunadelasvariantesdeltipodecaracteres.
Podemosgenerarcaracteresennegrita,eitlicaodediferentestamaosmanipulandolas
definicionesdelascurvasqueespecificanelcontornodeloscaracteres.Peroobviamente
hacefaltamstiempoparaprocesarlasfuentesdecontorno,yaqueesnecesariodigitalizar
loscaracteresparaalmacenarlosenelbferdeimagen.
Hayunadiversidaddeposiblesfuncionesparavisualizarcaracteres.Algunospaquetes
grficosproporcionanunafuncinqueaceptacualquiercadenadecaracteresyuna
indicacindeculdebeserlaposicindeiniciodelacadenadentrodelbferdeimagen.
Otrotipodefuncionessonaquellasquemuestranunnicocarcterenunaoms
posicionesseleccionadas.Puestoqueestarutinadecaracteresresultamuytilpara
mostrarcaracteresenunaimagen,porejemplo,deunareddecomputadorasoalahorade

pg.40

mostrarunagrficaconlospuntoscorrespondientesaunconjuntodedatosdiscretos,el
carctermostradoporestarutinasedenominaenocasionessmbolomarcadoro
polimarcador,poranalogaconlaprimitivadepolilnea.Ademsdeloscaracteresestndar,
otrasformasgeomtricasespecialescomolospuntos,loscrculosylascrucessuelenestar
disponiblescomosmbolosmarcadores.LaFiguramuestraunagrficadeunconjuntode
datosdiscretodondeseutilizaunasteriscocomosmbolomarcador.

Lasdescripcionesgeomtricasdeloscaracteresseproporcionanencoordenadas
universales,aligualqueconlasotrasprimitivas,yestainformacinsehacecorresponder
conlascoordenadasdepantallamediantelastransformacionesdevisualizacin.Un
carcterdemapadebitssedescribemedianteunacuadrcularectangulardevalores
binariosyunaposicindereferenciaparalacuadrcula.Estaposicindereferenciase
asignaentoncesaunaubicacinespecificadadentrodelbferdeimagen.Uncarcterde
contornoestdefinidoporunconjuntodepuntosquehayqueconectarmedianteunaserie
desegmentoscurvosyrectos,juntoconunaposicindereferenciaquehayquehacer
corresponderconunaubicacindeterminadadelbferdeimagen.Laposicindereferencia
puedeespecificarseparaunnicocarcterdecontornooparaunacadenadecaracteres.
Engeneral,lasrutinasdecaracterespermitengenerarimgenesconcaracterestanto
bidimensionalescomotridimensionales.
2.7Atributosdepuntos
Bsicamente,podemosestablecerdosatributosparalospuntos:elcoloryeltamao.Enun
sistemadeestados,elcoloryeltamaomostradosdeunpuntoestndeterminadosporlos
valoresactualesalmacenadosenlalistadeatributos.Lascomponentesdecolorse
establecenconvaloresRGBoconunndicedeunatabladecolor.Enunsistemade
grficosdigitalizados,eltamaodelpuntoesunmltiplodeltamaodelpxel,porloqueun
puntograndesemuestracomounbloquecuadradodepxeles.

pg.41

2.8Atributosdelneas
Unsegmentodelnearectasepuedemostrarcontresatributosbsicos:elcolor,elgrosory
elestilo.Elcolordelalneaseestablecehabitualmenteconlamismafuncindetodaslas
primitivasgrficas,mientrasqueelgrosoryelestilodelalneaseseleccionancon
funcionesindependientesparalaslneas.Adicionalmente,laslneassepuedengenerarcon
otrosefectos,talescomolostrazosdeunlapiceroyunabrocha.
Elgrosordelaslneas
Laimplementacindelasopcionesdelgrosordelaslneasdependedelascapacidadesdel
dispositivodesalida.Unalneagruesasepodramostrarenunmonitordevdeocomo
lneasadyacentesparalelas,mientrasqueuntrazadordeplumillaspodraprecisarel
cambiodelaplumillaparadibujarunalneagruesa.
Enimplementacionesdegrficosdigitalizados,unalneadegrosorestndarsegeneracon
unnicopxelencadaposicinmuestreada,comoenelalgoritmodeBresenham.Las
lneasmsgruesassevisualizancomomltiplosenterospositivosdelalneaestndar
medianteeldibujodepxelesadicionalesalolargodelneasparalelasadyacentes.Siuna
lneatieneunapendientemenoroigualque1.0,podemosmodificarlasubrutinadedibujo
delneasparamostrarlneasgruesasmedianteeldibujodepxelesdeextensinencada
columna(posicinx)alolargodelalnea.Elnmerodepxelesquesevanamostraren
cadacolumnasedefinecomoelvalorenterodelgrosordelalnea.EnlaFigurasemuestra
unalneadegrosordoblemediantelageneracindeunalneaparalelaencimadela
trayectoriadelalneaoriginal.

Encadaposicinxmuestreada,calculamoslacoordenadacorrespondienteyysedibujan
pxelesenlascoordenadasdepantalla(x,y)y(x,y+1).Podramosmostrarlneasconun
grosoriguala3omayor,dibujandoalternativamentepxelesporencimaypordebajodela
lneadegrosorsimple.
Enunalneadependientemayorque1.0,podemosmostrarlneasgruesasempleando
extensioneshorizontales,aadiendopxelesalternativamentealaderechayalaizquierda
delatrayectoriadelalnea.EsteplanteamientosemuestraenlasiguienteFigura,dondeun

pg.42

segmentodelneaconungrosorde4sedibujaempleandomltiplespxelestransversales
acadalneadebarrido.

Deformasimilar,unalneagruesaconunapendientemenoroigualque1.0sepuede
mostrarempleandoextensionesverticalesdepxeles.Podemosimplementareste
procedimientomediantelacomparacindelasmagnitudesdelasseparacioneshorizontaly
vertical(y)delospuntosextremosdelalnea.Si,lospxelesserepitenalolargodelas
columnas.Encasocontrario,mltiplespxelessedibujandeformatransversalalasfilas.
Aunquelaslneasgruesassegeneranfcilmentemedianteeldibujodeextensionesde
pxeleshorizontalesoverticales,elgrosorvisualizadodeunalnea(medido
perpendicularmentealatrayectoriadelalnea)dependedesupendiente.Unalneade45
sevisualizarmsfinadebidoalfactorcomparadaconunalneahorizontalovertical
dibujadaconlamismalongituddeextensionesdepxeles.
Otroproblemaconlaimplementacindelasopcionesdegrosorutilizandoextensionesde
pxeleshorizontalesyverticalesesqueelmtodoproducelneascuyosextremosson
horizontalesoverticalesindependientementedelapendientedelalnea.Esteefectoes
msapreciableconlneasmuygruesas.Podemosajustarlaformadelasterminacionesde
lalneaparadarlesunamejoraparienciaaadiendoextremosdelnea(comoseapreciaen
laFigura).

pg.43

Untipodeextremodelneaeselextremoabrupto,quepresentaterminacionescuadradas
quesonperpendicularesalatrayectoriadelalnea.Silalneatieneunapendientem,las
terminacionescuadradasdelalneagruesatienenunapendiente.Cadaunadelaslneas
paralelascomponentessevisualizaentoncesentrelasdoslneasperpendicularesacada
terminacindelatrayectoriadelalnea.Otrotipodeextremodelneaeselredondeadoque
seobtieneaadiendounsemicrculorellenoacadaextremoabrupto.Losarcoscirculares
tienensucentroenlazonamediadelalneagruesayundimetroigualalgrosordela
lnea.Untercertipodeextremodelneaeselcuadrado.Enestecaso,simplemente
extendemoslalneayaadimosextremosabruptosqueseposicionanenlamitaddel
grosordelalneamsalldelasterminaciones.
Entreotrosmtodosparaproducirlneasgruesassepuedenincluirlavisualizacindela
lneacomounrectngulorellenoolageneracindelalneaconunpatrndeplumillao
brochadeterminado.Paraobtenerunarepresentacinconformaderectnguloparael
lmitedelalnea,calculamoslaposicindelosvrticesdelrectnguloalolargodelas
perpendicularesalatrayectoriadelalnea,paraquelascoordenadasdelosvrticesdel
rectngulosedesplacendelasposicionesoriginalesdelosextremosdelalnealamitaddel
grosordelamisma.LalnearectangulartieneentonceselaspectodelaFiguradeextremos
delneaubicadoalaizquierda.Podramosaadirextremosredondeadosa!rectngulo
relleno,opodemosextendersulongitudparamostrarextremoscuadrados.
Lageneracindepolilneasgruesasrequierealgunasconsideracionesadicionales.Porlo
general,losmtodosquehemosconsideradoparamostrarsegmentosdelneano
producirnseriesdesegmentosdelneaconectadossuavemente.Larepresentacinde
polilneasgruesasempleandoextensionesdepxeleshorizontalesyverticales,porejemplo,
producenhuecosenlospxelesenloslmitesentrelossegmentosdelneacondiferentes
pendientesdondehayuncambiodeextensionesdepxeleshorizontalesaextensiones
verticales.
Podemosgenerarpolilneasgruesasqueestnunidassuavementeacostadeun
procesamientoadicionalenlosextremosdelossegmentos.LaFigurasiguientemuestra
tresposiblesmtodosparaunirsuavementedossegmentosdelnea.

Unauninenpuntaseconsigueextendiendolasfronterasdecadaunodelosdos
segmentosdelneahastaqueseencuentran.Unauninredondeadaseproducetapandola

pg.44

conexinentrelosdossegmentosconunafronteracircularcuyodimetroesigualalgrosor
delalnea.Yunauninbiseladasegeneravisualizandolossegmentosdelneacon
extremosabruptosyrellenandoelhuecotriangulardondeloselementosseencuentran.Si
elnguloentrelosdossegmentosdelneaconectadosesmuypequeo,unauninen
puntapuedegenerarunalargapaquedistorsionalaaparienciadelapolilnea.Unpaquete
grficopuedeevitaresteefectocambiandodeuninenpuntaauninbiseladacuando,por
ejemplo,elnguloentredossegmentoscualesquieraconsecutivosespequeo.
Estilodelaslneas
Entrelasposibleseleccionesdelatributodeestilodelneaseincluyenlaslneascontinuas,
laslneasdiscontinuasylaslneaspunteadas.Modificamoselalgoritmodedibujodelneas
paragenerartaleslneasmedianteelcambiodelalongitudydelespaciadodelas
seccionescontinuasmostradasalolargodelatrayectoriadelalnea.Enmuchospaquetes
grficos,podemosseleccionartantolalongituddelostrazosdiscontinuoscomoelespacio
entredichostrazos.
Losalgoritmosdelneasensistemasdigitalizadosmuestranlosatributosdeestilodelas
lneasdibujandoextensionesdepxeles.Enpatronesdiscontinuos,depuntosoambasala
vez.elprocedimientodedibujodelneasproducecomosalidaseccionescontinuasde
pxelesalolargodelatrayectoriadelalnea,saltandounnmerodepxelesentrelas
extensionescontinuas.Lacantidaddepxelesutilizadaenlalongituddelasextensionesy
elespacioentrelasmismassepuedeespecificarmedianteunamscaradepxel,lacuales
unpatrndedgitosbinariosqueindicaquposicionessehandedibujaralolargodela
trayectoriadelalnea.Lamscaralineal11111000,porejemplo,sepodrautilizarpara
mostrarunalneadiscontinuaconunalongituddetrazodecincopxelesyunespacioentre
trazosdetrespxeles.Alasposicionesdepxelcorrespondientesalbit1selesasignael
coloractual,yalasposicionesdepxelcorrespondientesalbit0selesasignaelcolorde
fondo.
Eldibujodetrazosconunnmerofijodepxelesprovocatrazosdelongituddesigualsegn
lasdiferentesorientacionesdelalnea,comosemuestraenlaFigurasiguiente.

pg.45

Ambostrazossedibujanconcuatropxelesperoeltrazodiagonalesmslargoenunfactor
de.Endibujosenlosquesenecesitaprecisin,laslongitudesdelostrazosdeberan
permaneceraproximadamenteconstantesparacualquierorientacindelalnea.Para
conseguiresto,podramosajustarlacantidaddepxelesdelasextensionescontinuasyel
espacioentredichasextensionesdeacuerdoconlapendientedelalnea.EnlaFigura
anteriorpodemosvisualizartrazosdelongitudaproximadamenteigualmediantela
reduccindeltrazodiagonalatrespxeles.
Otromtodoparamantenerlalongituddeltrazoconsisteentratarlostrazoscomo
segmentosindividualesdelnea.Lascoordenadasdelospuntosextremosdecadatrazose
localizanysepasanalasubrutinadelnea,lacualentoncescalculalasposicionesdelos
pxelesalolargodelatrayectoriadeltrazo.
Opcionesdeplumillaybrocha
Enalgunospaquetes,particularmenteenlossistemasdedibujoypintura,podemos
seleccionardirectamentediferentesestilosdeplumillaybrocha.Entrelasopcionesdeesta
categoraseincluyenlaforma,eltamaoyelpatrndelaplumillaobrocha.Algunos
ejemplosdeformasdeplumillaybrochasemuestranenlaFigurasiguiente.

pg.46

Estaformasepuedealmacenarenunamscaradepxelqueidentificalamatrizde
posicionesdepxelquesedebencambiaralolargodelatrayectoriadelalnea.Por
ejemplo,unaplumillarectangularsepodraimplementarconlamscaraquesemuestraen
laFigura.

Medianteelmovimientodelcentro(ounaesquina)delamscaraalolargodelatrayectoria
delalnea,comoenlasiguienteFigura.

pg.47

Paraevitarcambiarlospxelesmsdeunavezenelbferdeimagen,podemos
simplementeacumularlasextensioneshorizontalesgeneradasencadaposicindela
mscaraymantenerlapistadelcomienzoyelfinaldelasposicionesxdelasextensionesa
lolargodecadalneadebarrido.Laslneasgeneradasconplumilla(obrocha)sepueden
visualizarconvariosgrosoresmedianteelcambiodeltamaodelamscara.Porejemplo,
lalneageneradaconunaplumillarectangulardelaFiguraanteriorsepodraestrecharcon
unamscararectangulardetamao2por2oensancharconunamscaradetamao4por
4.Tambin,laslneassepuedenrepresentarconpatronescreadosmediantela
superposicindevariospatronesenunamscaradeplumillaobrocha.
2.9Atributosdecurvas
Losparmetrosdelosatributosdelascurvassonlosmismosquelosdelossegmentosde
lnearecta.Podemosmostrarcurvasvariandoloscolores,losgrosores,utilizandopatrones
depuntoyguin,yopcionesdisponiblesdeplumillasobrochas.Losmtodosparala
adaptacindelosalgoritmosdedibujodecurvasparaacomodarlosalasseleccionesdelos
atributossonsimilaresaaquellosempleadosparaeldibujodelneas.
Lascurvasdigitalizadasdevariosgrosoressepuedenrepresentarempleandoelmtodode
lasextensionesverticalesyhorizontalesdepxeles.Dondelamagnituddelapendientede
lacurvaseamenoroigualque1.0,dibujaremosextensionesverticalesdondelamagnitud
delapendienteseamayorque1.0,dibujaremosextensioneshorizontales.LaFigura
siguientemuestraestemtodoparalarepresentacindeunarcocirculardegrosor4enel
primercuadrante.

pg.48

Utilizandolasimetradelcrculo,podemosgenerarunatrayectoriacircularconextensiones
verticaleseneloctantequevadesdex=0ax=y,ydespusreflejarlasposicionesdelos
pxelessobrelalneay=xparaobtenerelreflejodelacurvamostrada.Lassecciones
circularesdeotroscuadrantesseobtienenmediantereflexindelasposicionesdelos
pxelesdelprimercuadrantesegnlosejesdecoordenadas.
Elgrosordelascurvasrepresentadasconestemtodoesdenuevofuncindelapendiente
delacurva.Loscrculos,elipsesyotrascurvasaparecernmsfinasdondelapendiente
tengaunamagnitudde1.Otromtodopararepresentarcurvasgruesasconsisteenrellenar
elreaentredostrayectoriasdecurvaparalelas,cuyadistanciadeseparacinseaigualal
grosordeseado.Podramoshacerestoempleandolatrayectoriadelacurvaespecificada
comounafronterayestablecerlasegundafronteradentroofueradelatrayectoriadela
curvaoriginal.Estatcnica,sinembargo,cambialatrayectoriadelacurvaoriginalhacia
dentroohaciaafuera,dependiendodeladireccinqueelijamosparalasegundafrontera.
Podemosmantenerlaposicindelacurvaoriginalestableciendodoscurvasfronteraauna
distanciademediogrosoracadaladodelatrayectoriadelacurvaespecificada.Unejemplo
deestatcnicasemuestraenlaFigurasiguienteparaunsegmentocircularconradio16y
grosor4.

pg.49

Losarcoslmiteseestablecenentoncesconunadistanciadeseparacinde2acadalado
delradiodevalor16.Paramantenerlasdimensionesadecuadasdelarcocircular,podemos
establecerelradioparalosarcoslmiteconcntricosenr=14yr=17.Aunqueestemtodo
esprecisoparalageneracindecrculosgruesos,proporcionaengeneral,slouna
aproximacinalreaverdaderadeotrascurvasgruesas.Porejemplo,loslmitesinternosy
externosdeunaelipsegruesageneradaconestemtodonotienenelmismofoco.
CAPTULOIII:TRANSFORMACIONESGEOMTRICAS
Enesteapartadoveremoslasoperacionesdetransformacinquesepuedenaplicara
objetosparareubicarlosodarlesuntamaodiferente.Estasoperacionestambinson
usadasenlavisualizacinderutinasqueconviertenunadescripcindeunaescenade
coordenadasuniversalesenundespliegueparaundispositivodesalida.Adems,son
usadosenvariedaddeotrasaplicaciones,talescomodiseodeayudayanimacinpor
computador.Lasoperacionesqueseaplicanadescripcionesgeomtricasdeunobjetopara
cambiarsuposicin,orientacinotamaosellamantransformacionesgeomtricas.
3.1.Transformacionesgeomtricasbidimensionalesbsicas
Lasfuncionesdetransformacionesgeomtricasquesepuedenencontrarentodoslos
paquetesgrficos,sonaquellasqueseusanparalatraslacin,larotacinyelcambiode
escala.Otrasrutinasdetransformacionestiles,queavecesseincluyenenlospaquetes,
sonlasoperacionesdereflexineinclinacin.
Traslacionesbidimensionales

pg.50

Serealizaunatraslacindeunpuntosencillodecoordenadas,mediantelainclusinde
compensacionesensuspropiascoordenadas,paragenerarunanuevaposicinde
coordenadas.Enefecto,seestmoviendolaposicindelpuntooriginalalolargodeuna
trayectoriaenlnearectahaciasunuevalocalizacin.Demodosimilar,unatraslacines
aplicableaunobjetoquesedefineconmltiplesposicionesdecoordenadas,talescomo
cuadrilteros,mediantelarecolocacindetodaslasposicionesdesuscoordenadas,
usandoelmismodesplazamientoalolargodetrayectoriasparalelas.As,elobjeto
completosemuestraenlanuevalocalizacin.
Paratrasladarunaposicinbidimensional,aadimosdistanciasdetraslacinyalas
coordenadasoriginalesparaobtenerlanuevaposicindecoordenadascomosemuestraa
continuacin.

PodemosexpresarlasEcuacionesdetraslacincomounanicaecuacindeunamatriz,
usandolossiguientesvectorescolumnapararepresentarposicionesdecoordenadasyel
vectordetraslacin.

Estonospermiteescribirlasecuacionesdetraslacinbidimensionalesenformadematriz.
Latraslacinesuntipodetransformacindeslidorgidoquemueveobjetossin
deformarlos.Estoes,cadapuntodeunobjetoestrasladadoenlamismamedida.Un
segmentoenlnearectaestrasladadomediantelaaplicacindeunaecuacinde
transformacinacadaunodelospuntosfinalesdelalneayredibujandolalneaentrelos
dosnuevospuntosfinales.Unpolgonosetrasladadeformasimilar.Seaadeunvectorde
traslacinalaposicindelascoordenadasparacadavrticeydespusseregenerael
polgonousandounnuevoconjuntodecoordenadasdevrtices.

pg.51

*
Rotacionesbidimensionales
Segeneraunatransformacinderotacindeunobjetomediantelaespecificacindeuneje
derotacinyunnguloderotacin.Todoslospuntosdelobjetosonentonces
transformadosalanuevaposicin,mediantelarotacindepuntosconelngulo
especificadosobreelejederotacin.Unarotacinbidimensionaldeunobjetoseobtiene
mediantelarecolocacindelobjetoalolargodeunatrayectoriacircularsobreelplanoxy.
Enestecaso,seestrotandoelobjetosobreunejederotacinqueesperpendicularal
plano(paraleloalejedecoordenadasz).Losparmetrosparalarotacinbidimensionalson
elnguloderotacin,yunaposicinllamadapuntoderotacin(opuntodepivote)sobre
loscualeselobjetovaaserrotado.Elpuntodepivoteeslaposicindeinterseccinentreel
ejedecoordenadasyelplanoxy.Unvalorpositivoparaelngulodefineunarotacinen
sentidocontrarioalasagujasdelrelojsobreelpuntodepivote,yunvalornegativorota
objetosenelsentidodelasagujasdelreloj.

Parasimplificarlaexplicacindelmtodobsico,primerohayquedeterminarlas
ecuacionesdetransformacinparalarotacindeunpuntodeposicinP,cuandoelpunto
pg.52

depivoteestenelorigendecoordenadas.Larelacinentreelangularylascoordenadas
delasposicionesoriginalesytransformadassemuestraenlasiguienteFigura.

Enestafigura,resladistanciaconstantedelpuntorespectodelorigen,elnguloesla
posicinangularoriginaldelpuntodesdelahorizontal,yeselnguloderotacin.Usando
identidadestrigonomtricasestndar,podemosexpresarlascoordenadastransformadasen
funcindelosngulosycomo:

Conlasrepresentacionesdelvectorcolumna,paraposicionesdecoordenadas,podemos
escribirlasecuacionesderotacinenformadematrizdondelamatrizderotacines:

LarotacindeunpuntosobreunaposicindepivotearbitrariaseilustraenlaFigura.
Usandolasrelacionestrigonomtricasindicadasporlosdostringulosrectngulosdeesta
figura,sepuedengeneralizarlasEcuacionesbsicasderotacinparaobtenerlas
ecuacionesdetransformacinparalarotacindeunpuntosobrecualquierposicinde
rotacinespecfica:

Estasecuacionesderotacingeneralesdifierendelasecuacionesdelarotacinsobreel
origen,porlainclusindetrminosaditivos,ascomofactoresmultiplicativosenlosvalores
decoordenadas.Laexpresindelamatrizpuedemodificarseparaincluirlascoordenadas
pivoteaadiendolamatrizdevectorcolumna,cuyoselementoscontienenlostrminos
aditivos(traslacionales)delasEcuaciones.Aligualqueconlastraslaciones,lasrotaciones
sontransformacionesdeslidorgidoquemuevenobjetossindeformarlos.
Cadapuntodeunobjetoserotaunmismongulo.Unsegmentoenlnearectaserota
mediantelaaplicacindelasecuacionesderotacinacadaunodesuspuntosfinaleso

pg.53

extremosyredibujandoluegolalneaentrelosnuevosextremos.Unpolgonoserota
desplazandocadaunodesusvrticesusandoelnguloderotacinespecificadoydespus
regenerandoelpolgonousandolosnuevosvrtices.Rotamosunacurvareposicionandolos
puntosdedefinicinparalacurvayredibujandodespus.Uncrculoounaelipse,por
ejemplo,puedenrotarsesobreunpuntodepivotenocentrado,moviendolaposicindel
centroatravsdelarcoquesustentaelnguloderotacinespecificado.Ypodemosrotar
unaelipsesobresupropiocentrodecoordenadas,sencillamenterotandoelejemayoryel
ejemenor.
Cambiodeescalabidimensional
Paraalterareltamaodeunobjeto,aplicamostransformacionesdeescala.Unasimple
operacindecambiodeescalabidimensionalsellevaacabomultiplicandolasposiciones
delosobjetosporlosfactoresdeescalayparaproducirlascoordenadastransformadas.
ElfactordeescalacambialaescaladeunobjetoenladireccinX,mientrasquehaceel
cambiodeescalaenladireccinY.Lasecuacionesbsicasdelcambiodeescalaendos
dimensionespuedentambinescribirseenlaformadelamatrizsiguiente.

dondeSeslamatriz2por2decambiodeescala.
Cualquiervalorpositivopuedeserasignadoalosvaloresdeescalay.Valoresinferioresa1
reduceneltamaodelosobjetosvaloressuperioresa1producenalargamientos.
Especificandounvalorde1tantoparacomoparasedejaeltamaodelobjetoinalterado.
Cuandoayselesasignaelmismovalor,seproduceuncambiodeescalauniformeque
mantienelasproporcionesrelativasdelobjeto.Valoresdesigualesdeyresultanenun
cambiodeescaladiferentequeesamenudousadoenaplicacionesdediseo,dondelos
dibujossonconstruidosdesdeunaspocasformasbsicasquepuedenajustarsemediante
escalasytransformacionesposicionales.Enalgunossistemas,losvaloresnegativos
tambinpuedenespecificarsemedianteparmetrosdeescala.Ellonosloledaunnuevo
tamaoalobjeto,ademsloreflejasobreunoomsejesdecoordenadas.
Podemoscontrolarlalocalizacindeunobjetocambiadodeescalaeligiendounaposicin,
llamadapuntofijo,quedebepermanecersincambiosdespusdelatransformacinde
escala.Lascoordenadasparaelpuntofijo,sonamenudoelegidasdelaposicindealgn
objeto,talcomosucentroide,aunquepuedeelegirsecualquierotraposicinespacial.Alos
objetosselesdaahoraotrotamaomedianteelcambiodeescaladelasdistanciasentre
lospuntosdelosobjetosyelpuntofijo.Paralaposicindecoordenadaslascoordenadas
deescalasecalculanapartirdelassiguientesrelaciones.

pg.54

Incluirlascoordenadasparaunpuntofijoenlasecuacionesdeescalaessimilaraincluir
coordenadasparaunpuntodepivoteenecuacionesderotacin.Lospolgonoscambiande
escalamediantelaaplicacindelasEcuacionesdecambiodeescalaacadavrtice,
regenerandodespuselpolgonousandolosvrticestransformados.Paraotrosobjetos,
aplicamoslasecuacionesdetransformacindeescalaalosparmetrosquedefinenel
objeto.Paracambiareltamaodeuncrculo,podemosreducirsuradioycalcularlas
nuevasposicionesdelascoordenadasdelcontornodelacircunferencia.Yparacambiarel
tamaodeunaelipse,aplicamoselescaladodelosparmetrossobresusejesparaluego
trazarlanuevaposicindelaelipsesobresucentrodecoordenadas.
3.2.Representacionesdematrizycoordenadashomogneas
Muchasaplicacionesgrficasimplicansecuenciasdetransformacionesgeomtricas.Una
animacindeberarequerirqueunobjetofuesetrasladadoyrotadotrascadaincrementode
movimiento.Endiseoyaplicacionesdeconstruccindedibujos,sellevanacabo
traslaciones,rotacionesycambiosdeescalaparaacoplarloscomponentesdeldibujo
dentrodesuspropiasposiciones.Ylavisualizacindelastransformacionesimplican
secuenciasdetraslacionesyrotacionesparallevamosdesdelaescenaoriginal
especificadaalavisualizacinenundispositivodesalida.Aqu,consideramoscmolas
representacionesdematricesdiscutidasenlaseccinanteriorpuedenacumularse.detal
formaquelassecuenciasdetransformacionespuedanserprocesadaseficientemente.
Hemosvistoanteriormentequecadaunadelastrestransformacionesbidimensionales
bsicas(traslacin,rotacinycambiodeescala)puedenexpresarseenformadematriz
general:
conposicionesdecoordenadasPyP'representadosenvectorescolumnas.Lamatrizes
unamatrizde2por2quecontienefactoresmultiplicativos,y,esunamatrizcolumnade2
elementosquecontienelostrminostraslacionales.Paralatraslacin,eslamatriz
identidad.Paralarotacinoelcambiodeescala,,contienelostrminostraslacionales
asociadosconelpuntodepivoteoconelpuntofijodeescalado.Paraproduciruna
secuenciadetransformacionesconesasecuaciones,comoporejemplo,uncambiode
escalaseguidodeunarotacinyluegounatraslacin,podemoscalcularlascoordenadas
transformadashaciendounacosacadavez.Primero,secambialaescaladelaposicinde
lascoordenadas,luegodichascoordenadassegirany,finalmente,lascoordenadasrotadas
sontrasladadas.Sinembargo,unaformamseficientedehacerlo,escombinar
transformacionesdetalsuertequelaposicinfinaldelascoordenadasseobtenga
directamenteapartirdelascoordenadasiniciales,sincalcularvaloresdecoordenadas

pg.55

intermedios.Podemoshaceresto,reformulandolaEcuacinanteriorparaeliminarla
operacindesumadematrices.
Coordenadashomogneas
Lostrminosmultiplicativosytraslacionalesparaunatransformacingeomtrica
bidimensionalpuedensercombinadosdentrodeunamatrizsencilla,siexpandimosla
representacinamatricesde3por3.Enesecaso,podemosusarlaterceracolumnadela
matrizdetransformacinparalostrminostraslacionales,ytodaslasecuacionesde
transformacinpuedenexpresarsecomomultiplicacindematrices.Peroparapoderhacer
esto,necesitamosademsexpandirlarepresentacinmatricialparaposicionesde
coordenadasbidimensionalesaunamatrizcolumnade3elementos.Unatcnicaestndar
paralograrestoconsisteenexpandircadarepresentacindeposicincoordenada
bidimensional(x,y)enrepresentacionesde3elementosllamadascoordenadas
homogneas,dondeelparmetrohomogneohesunvalordistintodecerotalque:
y
Portanto,unarepresentacindecoordenadashomogneasbidimensionales,puede
escribirsetambincomo.Paratransformacionesgeomtricas,podemoselegirelparmetro
homogneohparaqueseacualquiervalordistintodecero.As,hayunnmeroinfinitode
representacioneshomogneasequivalentesparacadapuntodecoordenadas(x,y).Una
eleccinacertadaesfijarh=1.Cadaposicinbidimensionalserepresentaconcoordenadas
homogneas(x,y,1).Senecesitanotrosvaloresparaelparmetroh,porejemploen
formulacionesdematricesparamostrartransformacionestridimensionales.
Eltrminocoordenadashomogneasseusaenmatemticasparareferirsealefectodeesta
representacinencoordenadascartesianas.Cuandounpuntocartesiano(x,y)seconvierte
arepresentacinhomognealasecuacionesquecontienenxeytalescomof(x,y)=0,se
conviertenenecuacioneshomogneasenlostresparmetros.Estosignificaprecisamente,
quesicadaunodelostresparmetrosessustituidoporcualquiervalor,vveces,dichovalor
vpuedeserdespejadodelaecuacin.
Expresarposicionesencoordenadashomogneasnospermiterepresentartodaslas
ecuacionesdetransformacionesgeomtricascomomultiplicacindematrices,queesel
mtodoestndarusadoenlossistemasgrficos.Lasposicionesdecoordenadas
bidimensionalesserepresentanconvectorescolumnadetreselementos,ylasoperaciones
detransformacinbidimensionalesserepresentancomomatricesde3por3.
Matrizdetraslacinbidimensional
Usandolaaproximacindecoordenadashomogneas,podemosrepresentarlas
ecuacionesparaunatraslacinbidimensionaldeunaposicindecoordenadasusandola
siguientematrizdemultiplicacin.

pg.56

Estaoperacindetraslacinpuedeescribirseensuformaabreviada:
Matrizderotacinbidimensional
Demanerasimilar,lasecuacionesdetransformacinderotacinbidimensionalsobreel
origendecoordenadaspuedenexpresarseenformadematriz,

Enalgunasbibliotecasgrficas,unafuncinderotacinbidimensionalgeneraslo
rotacionessobreelejedecoordenadas.Unarotacinsobrecualquierotropuntodepivote
deberepresentarsecomounasecuenciadeoperacionesdetransformacin.Unaalternativa
enpaquetesgrficosesofrecerparmetrosadicionalesenlarutinaderotacinparalas
coordenadasdelpuntodepivote.Unarutinaderotacinqueincluyeparmetrosdelpunto
depivote,luegoestableceunamatrizgeneralderotacin,sinlanecesidaddeinvocaruna
sucesindefuncionesdetransformacin.
Matrizdecambiodeescalabidimensional
Finalmente,unatransformacindecambiodeescalarelativaalorigendecoordenadas
puedeahoraexpresarsecomolamatrizdemultiplicacin:

Algunasbibliotecasofrecenunafuncindecambiodeescalaquepuedegenerarsloun
cambiodeescalaconrespectoalorigendecoordenadas,comoenlaEcuacin5.21.En
estecaso,unatransformacindecambiodeescalarelativaaotraposicindereferenciaes
llevadaacabocomounasucesindeoperacionesdetransformacin.Sinembargo,otros
sistemassincluyenunarutinadecambiodeescalageneralquepuedeconstruirmatrices
homogneaspararealizarcambiosdeescalaconrespectoapuntosfijosdesignados.
Transformacionesinversas
Paralatraslacin,obtenemoslamatrizinversamediantelanegacindelasdistanciasde
traslacin.As,sitenemosdistanciasdetraslacinbidimensionalesy,lamatrizde
traslacininversaes:

pg.57

Estoproduceunatraslacinenladireccinopuesta,yelproductodelamatrizdetraslacin
ysuinversaproducenlamatrizidentidad.
Unarotacininversaseobtienesustituyendoelnguloderotacinporsunegativo.Por
ejemplo,unarotacinbidimensionalatravsdelngulosobreelorigendecoordenadas,
tienelamatrizdetransformacin:

Losvaloresnegativosparalosngulosderotacingeneranrotacionesenelsentidodelas
agujasdelreloj,as,lamatrizidentidadseproducecuandoalgunamatrizderotacinse
multiplicaporsuinversa.Puestoqueporelcambiodesignodelnguloderotacinslose
veafectadalafuncinseno,lamatrizinversapuedeobtenersetambinintercambiandofilas
porcolumnas.
Formamoslamatrizinversaparacualquiertransformacindeescalasustituyendolos
parmetrosdeescalaporsusrecprocos.Paraescalasbidimensionalesconparmetrosy
aplicadosrespectoalorigendecoordenadas,lamatrizdetransformacininversaes:

Lamatrizinversageneraunatransformacindeescalaopuesta,detalformaquela
multiplicacindecualquiermatrizdeescalaporsuinversaproducelamatrizidentidad.
3.3.TransformacionesCompuestasbidimensionales
Usandolarepresentacindematrices,podemosestablecerunasecuenciade
transformacionescomomatrizdetransformacincompuestacalculandoelproductodelas
transformacionesindividuales.Formandoproductosconlasmatricesdetransformacines
comnreferirseaellocomoconcatenacin,ocomposicin,dematrices.Desdeuna
posicindecoordenadasrepresentadacomounamatrizcolumnahomognea,debemos
premultiplicarlamatrizcolumnaporlasmatrices,representandounasecuenciade
transformaciones.Y,comomuchasposicionesdeunaescenasonnormalmente
transformadasporlamismasecuencia,esmseficienteprimeromultiplicarla
transformacindematricesparaformarunanicamatrizcompuesta.As,siqueremos
aplicardostransformacionesalaposicindeunpuntoP,laubicacintransformadase
calcularacomo:

pg.58

LaposicindecoordenadassetransformausandolamatrizcompuestaM,mejorque
aplicandolastransformacionesindividualesyluego.
Otrastransformacionesbidimensionales
Lastransformacionesbsicastalescomolatraslacin,larotacinyelcambiodeescalason
componentesestndaresdelasbibliotecasgrficas.Algunospaquetesofrecenalgunas
transformacionesadicionalesquepuedensertilesenciertasaplicaciones.Dosdedichas
transformacionessonlareflexinylainclinacin.
Reflexin
Unatransformacinqueproducelaimagendeunobjetoenunespejosellamareflexin.
Paraunareflexinbidimensional,estaimagensegenerarespectoaunejedereflexin
rotandoelobjeto180sobredichoejedereflexin.Podemoselegirunejedereflexinenel
plano.operpendicularalplano.Cuandoelejedereflexinesunalneaenelplano,la
trayectoriadelarotacinesttambinenelplano.Acontinuacinseproporcionan
ejemplosdealgunasreflexionescomunes.
Lareflexinrespectodelalnea(eleje)selograconlamatrizdetransformacin:

Estatransformacinconservalosvalores,perodalavueltaalasposicionesde
coordenadasdevalores.Laorientacinresultantedeunobjetodespusdehabersido
reflejadosobreelejesemuestraenlaFigurasiguiente.

pg.59

Paraimaginarlatrayectoriadelatransformacinderotacinparaestareflexin,podemos
pensarenelobjetoplanomovindosefueradelplanoygirando180atravsdeun
espaciotridimensionalalrededordelejeycolocadodenuevosobreelplanoalotroladodel
eje.
Unareflexinsobrelalnea(eleje)vuelcalascoordenadasmientrasquemantienelas
mismascoordenadas.Lamatrizparaestatransformacines:

Lafigurasiguienteilustraelcambiodeposicindeunobjetoquehasidoreflejadorespecto
delalnea.

Larotacinequivalenteenestecasoes180atravsdelespaciotridimensionalsobreel
eje.
Damoslavueltatantoalascoordenadascomoalasdeunpunto,mediantelareflexin
relativadeunejequeesperpendicularalplanoyquepasaporelorigendecoordenadas.
Estareflexinavecessedenominareflexinrelativaalorigendecoordenadas,yes
equivalenteareflejarconrespectoaambosejesdecoordenadas.Lamatrizde
representacinparaestareflexines:

Lafigurasiguientemuestraunejemplodereflexinrespectodelorigen.Lamatrizde
reflexinanterioreslamismaquelamatrizderotacincon.Sencillamenteestamosgirando
elobjetoenelplanomediavueltaalrededordelorigen.

pg.60

Lamatrizdereflexinparaelcasoanteriorsepuedegeneralizarseparalareflexinde
cualquierpuntoenelplanocomosemuestraenlafigurasiguiente.Estareflexineslo
mismoquelarotacinde180enelplano,alrededordeunpuntodereflexin.

Sielegimoselejedereflexincomolalneadiagonal,lamatrizdereflexines:

Ylafiguramuestraelresultado.

pg.61

Podemosobtenerestamatrizconcatenandounasecuenciaderotacionesyreflexionesde
matricessobrelosejesdecoordenadas.UnaposiblesecuenciasemuestraenlaFigura
siguiente.

Aqu,primerollevamosacabounarotacinenelsentidodelasagujasdelrelojcon
respectoalorigenatravsdeunngulode45,querotalalneaysobreeleje.A
continuacinrealizamosunareflexinconrespectoaleje.Elpasofinalconsisteengirarla
lneadevueltaasuposicinoriginalconunarotacinde45ensentidocontrarioaldelas
agujasdelreloj.Otrasecuenciadetransformacionesequivalenteconsisteenreflejar
primeroelobjetosobreelejeyluegorotarloenelsentidodelasagujasdelreloj.
Ejercicioobtenerunamatrizparalareflexinconrespectoalalnea.
Lasreflexionessobrecualquierlneaenelplanopuedenrealizarseconunacombinacin
detransformacionestraslacinrotacinreflexin.Engeneral,primerotrasladamoslalnea
detalformaquepaseporelorigen.Luegopodemosgirarlalneahaciaunodelosejesde
coordenadasyreflejarlasobredichoeje.Finalmente,reestablecemoslalneaasuposicin
originalconlastransformacionesinversasderotacinytraslacin.
Podemosimplementarreflexionesconrespectoalosejesdecoordenadasoalorigende
coordenadascomotransformacionesdeescalaconfactoresdeescalanegativos.Adems,

pg.62

loselementosdelamatrizdereflexinpuedendefinirseconvaloresdistintosde1.Un
parmetrodereflexindeunamagnitudsuperiora1cambialaimagendelespejoporun
puntomsalejadodelejedereflexin,yunparmetrocuyamagnitudesinferiora1traela
imagendelespejoaunpuntomscercanoalejedereflexin.As,unobjetoreflejado
puedetambinagrandarse,reducirseodistorsionarse.

Inclinar
Unatransformacinquedistorsionalaformadeunobjetodetalmaneraquelaforma
obtenidaaparececomosielobjetoestuvieracompuestoporcapasinternasquesehubieran
obtenidoresbalandounassobreotrasesloquesedenominainclinacin.Dos
transformacionescomunesparaproducirunainclinacinsonaquellasquedesplazanlos
valoresdelascoordenadasylasquedesplazanlosvaloresde.
Unainclinacinenladireccinrespectoalejeseproduceconlamatrizdetransformacin:

Lacualtransformalaposicindecoordenadascomosigue:

Cualquiernmerorealpuedeasignarsealosparmetrosdeinclinacin.Entonces,una
posicindecoordenadassecambiahorizontalmenteporunacantidadproporcionalasu
distanciaperpendicular(valor)desdeeleje.
Ejemplo,Establecerelparmetroporejemploconelvalor2,mostrarentonceselresultado
deinclinarelrecuadrodevrtices(0,0)(1,0)(1,1)(0,1).
Losvaloresnegativosparacambianlasposicionesdelascoordenadashacialaizquierda.
Transformacionesentresistemasdecoordenadasbidimensionales

pg.63

Lasaplicacionesdegrficosporcomputadoraimplicantransformacionesdecoordenadas
deunmarcodereferenciaaotrodurantevariasetapasdelprocesamientodelaescena.Las
rutinasdevisualizacintransformandescripcionesdeobjetosdelascoordenadas
universalesaunascoordenadasdedispositivodesalida.Paraaplicacionesdemodeladoy
diseo,losobjetosindividualessedefinentpicamenteensuspropiasreferencias
cartesianaslocales.Estasdescripcionesdecoordenadaslocalesdeben,portanto,
transformarseenposicionesyorientacionesdentrodelsistemadecoordenadastotaldela
escena.Unprogramaparafacilitarlagestindeladisposicindeoficinas,porejemplo,
tienedescripcionesdecoordenadasindividualesparasillasymesasyotrosmueblesque
puedencolocarseenelplanodelaplanta,conmltiplescopiasdesillasyotroselementos
endiferentesposiciones.
Adems,lasescenasavecessedescribenenmarcosdereferencianocartesianosque
aprovechanlassimetrasdelosobjetos.Lasdescripcionesdecoordenadasenestos
sistemasdebenconvertirseacoordenadasuniversalescartesianasparaserprocesadas.
LaFigurasiguientemuestraunsistemacartesianoespecificadoconelorigende
coordenadasyunngulodeorientacinenunmarcodereferenciacartesiano.Para
transformarlasdescripcionesdelobjetodelascoordenadasalascoordenadas.
establecemosunatransformacinquesuperponelosejessobrelosejes.Estoserealiza
endospasos:
(1)Traslacindetalformaqueelorigendelsistemasemuevaalorigen(0,0)delsistema.
(2)Rotacindelejesobreeleje.
Latransformacindelorigendecoordenadassellevaacaboconlamatrizde
transformacin:

Laorientacindelosdossistemasdespusdelaoperacindetraslacindeberanaparecer
comoenlaFigurasiguiente.

pg.64

Paraconseguirquelosejesdelosdossistemascoincidan,hacemosunarotacinenel
sentidodelasagujasdelreloj:

Concatenarestasdosmatricesdetransformacin,nosdacomoresultadolamatriz
compuestacompletaparatransformarlasdescripcionesdelobjetodesdeelsistemaal
sistema:

CAPTULOIV:RECORTES
4.1.Algoritmosderecorte
Generalmente,cualquierprocedimientoqueeliminaaquellasporcionesdeunaimagenque
estndentroofueradeunaregindelespacioespecificadasedenominaalgoritmode
recorteosimplementerecorte.Habitualmente,unareginderecorteesunrectnguloen
posicinestndar,aunquepodramosutilizarcualquierformaenunaaplicacinderecorte.
Laaplicacinderecortemscomnestenlapipelinedevisualizacin,dondeelrecortese
aplicaparaextraerunaporcindesignadadelaescena(bidimensionalotridimensional)
parasuvisualizacinenundispositivodesalida.Losmtodosderecortetambinseutilizan
parasuavizarloslmitesdelosobjetos,paraconstruirobjetosutilizandomtodosde
modeladodeslidos,gestionarentornosmultiventanayparapermitirquepartesdeuna
imagensemuevan,secopienoseborrenenprogramasdedibujoypintura.
Losalgoritmosderecorteseaplicanenprocedimientosdevisualizacinbidimensionalpara
identificaraquellaspartesdeunaimagenqueestndentrodelaventanaderecorte.Todolo
queseencuentrafueradelaventanaderecorte,seeliminadeladescripcindelaescena
quesetransfierealdispositivodesalidaparasuvisualizacin.Unaimplementacineficiente
derecorteenlapipelinedevisualizacinconsisteenaplicarlosalgoritmosaloslmites
normalizadosdelaventanaderecorte.Estoreducelosclculos,porquetodaslasmatrices
detransformacingeomtricaydevisualizacinsepuedenconcatenaryaplicarauna
descripcindeunaescenaantesdequeelrecorteselleveacabo.Laescenarecortadase
puededespustransferiralascoordenadasdepantallaparaelprocesamientofinal.Se
puedetratar,algoritmosbidimensionalespara:
Recortedepuntos
Recortedelincas(segmentosdelnearecta)
Recortedereasderelleno(polgonos)
Recortedecurvas
Recortedetexto
pg.65

Elrecortedepuntos,lneasypolgonosesuncomponenteestndardelospaquetes
grficos.Perosepuedenaplicarmtodossimilaresaotrosobjetos,particularmentecnicas,
talescomocrculos,elipsesyesferas,ademsdecurvasdetiposplineyasuperficies.
Habitualmente,sinembargo,losobjetosconlmitesnolinealesseaproximanmediante
segmentosdelnearectaosuperficiesdepolgonosparareducirlosclculos.Amenosque
seindiqueotracosa,asumimosquelareginderecorteesunaventanarectangularen
posicinestndar,conlasaristaslmiteenlascoordenadas,,,.Estasaristaslmite
habitualmentesecorrespondenconuncuadradonormalizado,enelquelosvaloresdexey
seencuentrandentrodelrangoquevaradesde0a1desde1a1.
4.2Recortedepuntosbidimensionales
Enunrectnguloderecorteubicadoenlaposicinestndar,mantenemosunpunto
bidimensionalparasuvisualizacinsisesatisfacenlassiguientesdesigualdades:

Sinosesatisfaceunadeestascuatroecuaciones,elpuntoserecorta(noseguardapara
suvisualizacin).Aunqueelrecortedepuntosseaplicamenosamenudoqueelrecortede
lneasodepolgonos,resultatilendiversassituaciones,sobretodocuandolasimgenes
semodelancomosistemasdepartculas.Porejemplo,sepuedeaplicarrecortedepuntosa
escenasqueincluyannubes,espumademar,humooexplosionesqueestnmodeladas
mediantepartculas,talescomolascoordenadasdeloscentrosdepequeoscrculoso
esferas.
4.3Recortedelneasbidimensionales

LaFiguramuestraposiblesposicionesdesegmentosdelnearectaenrelacinconuna
ventanaderecorteestndar.Unalgoritmoderecortedelneasprocesacadalneadeuna

pg.66

escenamedianteunaseriedepruebasyclculosdeinterseccionesparadeterminarsise
debeguardarlalneacompletaounapartedesta.Lapartemscostosadeun
procedimientoderecortedelneaseselclculodelasinterseccionesdeunalneaconlas
aristasdelaventana.Portanto,unobjetivoimportanteencualquieralgoritmoderecortede
lneasconsisteenminimizarlosclculosdeintersecciones.Paraello,podemosrealizaren
primerlugarpruebasparadeterminarsiunsegmentodelneaestcompletamentedentro
delaventanaderecorteoestcompletamentefuera.Essencillodeterminarsiunalnea
estcompletamentedentrodeunaventana,peroesmsdifcilidentificartodaslaslneas
queestncompletamentefueradelaventana.Sisomosincapacesdeidentificarsiuna
lneaestcompletamentedentroocompletamentefueradeunrectnguloderecorte,
debemosentoncesrealizarlosclculosdeinterseccinparadeterminarsiunapartedela
lneacruzaelinteriordelaventana.
Comprobamosunsegmentodelneaparadeterminarsiestcompletamentedentroofuera
delbordedeunaventanaderecorteseleccionada,aplicandolaspruebasderecortede
puntosdelaseccinanterior.Cuandoambospuntosextremosdeunsegmentodelnea
estndentrodeloscuatrolmitesderecorte,comolalneaquevadeaenlaFigura
anterior,lalneaestcompletamentedentrodelaventanaderecorteylaguardamos.
Cuandoambospuntosextremosdeunsegmentodelneaseencuentranfuerade
cualquieradeloscuatrolmites(lneaaenlaFiguraanterior),dichalneaseencuentra
completamentefueradelaventanayseeliminadeladescripcindelaescena.Perosi
ambaspruebasfallan,elsegmentodelneaintersectaconalmenosunlmitederecortey
puedeonocruzarelinteriordelaventanaderecorte.
Unmododeformularlaecuacindeunsegmentodelnearectaconsisteenutilizarla
siguienterepresentacinparamtrica,dondelascoordenadasydesignanlosdospuntos
extremosdelalnea.

Podemosutilizarestarepresentacinparadeterminardndeunsegmentodelneacorta
cadaaristadelaventanaderecorte,asignandoelvalordelacoordenadadecadaaristaax
oyyresolviendoparaelparmetrou.Amododeejemplo,ellmiteizquierdadelaventana
estenlaposicinporloquesustituimosxporestevaloryresolvemosparau,y
calculamoselvalordeinterseccinycorrespondiente.Siestevalordeuseencuentrafuera
delrangoquevaradesde0a1,elsegmentodelneanointersectacondichaaristadela
ventana.Perosielvalordeuseencuentradentrodelrangoquevaraentre0y1,partede
lalneaseencuentradentrodedichoborde.Podemosacontinuacinprocesarestaporcin
interiordelsegmentodelneaconrespectoalosdemslmitesderecortehastaque
hayamosrecortadolalneaenteraoencontremosunapartequeestdentrodelaventana.
pg.67

Elprocesamientodesegmentosdelneadeunaescenautilizandolasencillatcnica
descritaenelprrafoanterioresdirecto,peronomuyeficiente.Esposiblereformularla
pruebainicialylosclculosdeinterseccinparareducireltiempodeprocesamientodeun
conjuntodesegmentosdelnea.Sehandesarrolladoalgoritmosderecortedelneasms
rpidos.Algunosdeestosalgoritmossehandiseadoexplcitamenteparaimgenes
bidimensionalesyalgunosseadaptanfcilmenteaconjuntosdesegmentosdelnea
tridimensionales.
RecortedelneasdeCohenSutherland
steesunodealgoritmosmsantiguosquesehadesarrolladoparaelrecortedelneas
rpido,yvariacionesdeestemtodoseutilizanampliamente.Eltiempodeprocesamiento
sereduceenelmtododeCohenSutherlandrealizandomspruebasantesdeproceder
conlosclculosdelasintersecciones.Inicialmente,seasignaacadapuntoextremodelas
lneasdeunaimagenunvalorbinariodecuatrodgitosllamadocdigoderegin.Cadabit
seutilizaparaindicarsiestdentroofueradeunodeloslmitesdelaventanaderecorte.
Podemoshacerreferenciaalasaristasdelaventanaencualquierorden.

LaFiguraanteriormuestraunaposibleordenacinenlaquelosbitsestnnumeradosde1
a4dederechaaizquierda.Portanto,paraestaordenacin,elbitsituadomsaladerecha
(bit1)hacereferenciaalbordeizquierdodelaventanaderecorte,yelsituadomsala
izquierda(bit4)hacereferenciaalbordesuperiordelaventana.Unvalorde1(overdadero)
encualquierbitindicaqueelpuntoextremoestfueradelaventana.Deformasimilar,un
valorde0(ofalso)encualquierbitindicaqueelpuntoextremonoestfuera(estdentroo
sobre)dellmitecorrespondientedelaventana.Aveces,uncdigodereginsedenomina
cdigodefueraporqueunvalorde1encualquierbitindicaqueelpuntodelespacioest
fueradelcorrespondientebordederecorte.
Cadaaristadelaventanaderecortedivideelespaciobidimensionalenunsemiespacio
interioryunsemiespacioexterior.Entotal,loscuatrolmitesdelaventanacreannueve
regiones.LaFigurasiguienteenumeraelvalordelcdigobinarioencadaunadeestas
regiones.Portanto,aunpuntoextremoqueestsituadodebajoyalaizquierdadela

pg.68

ventanaderecorteseleasignauncdigoderegin0101,yelvalordelcdigodereginde
cualquierpuntointerioralaventanaderecortees0000.

1001

0001

0101

1000

0000
Ventanaderecorte
0100

1010

0010

0110

Losvaloresdelosbitsdeuncdigodereginsedeterminancomparandolosvaloresdelas
coordenadasdeunpuntoextremoconloslmitesderecorte.Elbit1seponea1si.Los
valoresdelosotrostresbitssedeterminandeformasemejante.Enlugardeutilizarpruebas
dedesigualdad,podemosdeterminarmseficientementelosvaloresdeuncdigoderegin
utilizandolasoperacionesdeprocesamientodebitsysiguiendodospasos:
Calcularlasdiferenciasentrelascoordenadasdelospuntosextremosyloslmitesde
recorte.
Utilizarelbitdesignoresultantedecadaclculodediferenciaparacambiarelvalor
correspondientedecadacdigoderegin.(un0denotaunnmeropositivo,yun1denota
unnmeronegativo)
EnelcasodelesquemadeordenacinmostradoenlaFiguraanterior,elbit1eselbitde
signodeelbit2eselbitdesignodeelbil3eselbitdesignodeyelbit4eselbitde
signode.
Unavezquehemosestablecidoloscdigosderegindetodoslospuntosextremosde
todaslaslneas,podemosdeterminarrpidamentequlneasseencuentran
completamentedentrodelaventanaderecorteyculesseencuentranclaramentefuera.
Cualesquieralneasqueseencuentrancompletamentecontenidasdentrodelasaristasde
laventanatienenuncdigoderegin0000enambospuntosextremosyestossegmentos
delnealosguardamos.Cualquierlneaquetengauncdigoderegindevalor1enel
mismobitencadapuntoextremoestcompletamentefueradelrectnguloderecorte,porlo
queeliminamosdichosegmentodelnea.Amododeejemplo,unalneaquetengaun
cdigoderegin1001enunpuntoextremoyuncdigo0101enelotropuntoextremoest
completamentealaizquierdadelaventanaderecorte,comoloindicaelvalor1enelprimer
bitdecadacdigoderegin.

pg.69

Podemosrealizarlaspruebasdedentrofueraparalossegmentosdelneautilizando
operadoreslgicos.Cuandolaoperacinorentrelosdoscdigosderegindelospuntos
extremosdeunsegmentodelneaesfalsa(0000),lalneaseencuentradentrodela
ventanaderecorte.Portanto,guardamoslalneayprocedemosacomprobarlalnea
siguientedeladescripcindelaescena.Cuandolaoperacinandentrelosdoscdigosde
regindelospuntosextremosdeunalneaesverdadera(no0000),lalneaest
completamentefueradelaventanaderecorte,ypodemoseliminarladeladescripcindela
escena.Enelcasodelaslneasquenosepuedenidentificarcomoqueestn
completamentedentroocompletamentefueradeunaventanaderecortemediantelas
pruebasdelcdigoderegin,secompruebaacontinuacinsiintersectanconloslmitesde
laventana.ComosemuestraenlaFigurasiguiente,lossegmentosdelneapueden
interceptarconloslmitesderecortesinentrardentrodelinteriordelaventana.

Portanto,pararecortarunsegmentodelneapodransernecesariosvariosclculosde
intersecciones,dependiendodelordenenqueseproceseloslmitesderecorte.Cuando
procesamoscadaaristadelaventanaderecorte,serecortaunapartedelalnea,ylaparte
quepermanecedelalneasecompruebafrentealosrestanteslmitesdelaventana.
Continuaremoseliminandoparteshastaquelalneaesttotalmenterecortadaolaparte
quepermanecedelalneaseencuentredentrodelaventanaderecorte.Enelsiguiente
estudio,asumimosquelasaristasdelaventanaseprocesanenelorden:izquierda,
derecha,inferior,superior.Paradeterminarsiunalneacruzaunlmitederecorte
seleccionado,podemoscomprobarlosvalorescorrespondientesdelosbitsdeloscdigos
deregindelosdospuntosextremos.Siunodeestosbitses1yelotroes0,elsegmento
delneacruzadicholmite.
LaFiguraAnteriormuestradossegmentosdelneaquesepuedenidentificar
inmediatamentecomocompletamentedentroocompletamentefueradelaventanade
pg.70

recorte.Loscdigosderegindelalneadesdeason0100y1001.Portanto,estdentro
dellmiteizquierdoderecortey,estfueradedicholmite.
Acontinuacin,calculamoslainterseccin,yrecortamoslapartedelalneadesdea.La
partequepermanecedelalneaseencuentradentrodelalnealmitederecha,yporelloa
continuacincomprobamosellmiteinferior.Elpuntoextremoseencuentrapordebajode
laaristainferiorderecorteyseencuentraporencimadesta,porloquedeterminamosla
interseccinconestaarista.Eliminamoslapartedelalneadesdeayprocedemosconla
aristasuperiordelaventana.Alldeterminamoslainterseccin.Elltimopasoconsisteen
recortarlapartesituadaporencimadellmitesuperioryguardarelsegmentointeriordesde
,hasta.Enelcasodelasegundalnea,obtenemosqueelpunto,seencuentrafueradel
lmiteizquierdoyseencuentradentro.Portanto,calculamoslainterseccinyeliminamos
lapartedelalincaquevadesdeayComprobandoloscdigosderegindelospuntos
extremosy,observamosquelapartequepermanecedelalneaseencuentrapordebajo
delaventanaderecorteysepuedeeliminartambin.Cuandoserecortaunsegmentode
lneautilizandoestatcnicasepuedecalcularunainterseccinconloscuatrolmitesde
recorte,dependiendodecmoseprocesanlospuntosextremosdelalneayqu
ordenacinutilicemosenloslmites.

LaFiguramuestralascuatrointerseccionesquesepodrancalcularseparaunsegmentode
lneaqueseprocesafrentealasaristasdelaventanaderecorteenelordenizquierda,

pg.71

derecha,inferior,superior.Portanto,sehandesarrolladovariacionesdeestatcnicabsica
enunesfuerzoporreducirlosclculosdeintersecciones.
Paradeterminarunainterseccindeunsegmentodelneaconlafrontera,podemosutilizar
laformapendientepuntodecortedelaecuacindelalnea.Paraunalneacon
coordenadasensuspuntosextremosy,lacoordenadadelpuntodeinterseccinconun
bordederecorteverticalsepuedeobtenermedianteelclculo,
dondeelvalordeseestableceeno,ylapendientedeestalneasecalculacomo.De
formasimilar,sibuscamoslainterseccinconelbordehorizontal,lacoordenadasepuede
calcularcomo:
(estableciendoeno.
Ejemplo:
Queremosmostrarvariossegmentos,peronicamentedentrodenuestravista
representadaporunrectnguloverticaldescritoconlassiguientesesquinas:superior
izquierda(1,3)einferiorderecha(3,3).Tenemoslossiguientessegmentosdefinidospor
parejasdepuntosqueformansusextremos:
A=(2,1)yB=(2,2),
C=(1,4)yD=(0,4),
E=(4,3)yF=(3,0),
G=(3,1)yH=(2,4).

pg.72

Calculamosloscdigosregionalesparacadapunto:
A:0001B:0000
C:1000D:0100
E:0010F:0000
G:0001H:0101

pg.73

Aplicamosnuestroscriteriosalosresultadosdelasoperacionesaniveldebitdeloscdigos
regionalesdecadapuntodandolugara:
AB:0001OR0000=0001 0001AND0000=0000 Hayquerecortar
CD:1000OR0100=1100 1000AND0100=0000 Hayquerecortar
EF:0010OR0000=0010 0010AND0000=0000 Hayquerecortar
GH:0001OR0101=0101 0001AND0101=0001 Inmediatamentelorechazamos

pg.74

Hacemoslaprimeratandaderecortesdelospuntosconsusprimerasaristasdelalgoritmo,
obteniendo:

Recalculamosloscdigosdecadapunto:
AB:0000OR0000=0000 Aceptamoselsegmento
CD:0000OR0100=0100 0000AND0100=0000 Hayquerecortar
EF:0000OR0000=0000 Aceptamoselsegmento

pg.75

NosfaltarecortarunasegundavezparaelsegmentoCD.ElalgoritmoeligeelpuntoDpara
recortar,obteniendo:

Recalculamosloscdigosdecadapunto:
CD:0000OR0000=0000 Aceptamoselsegmento

pg.76

Alfinal,obtenemoslasiguienteimagenconlossegmentosrecortadoseinterioresal
rectnguloderecorte.

pg.77

RecortedelineasdeLiangBarsky
Sehandesarrolladoalgoritmosderecortedelneasmsrpidosquerealizanuna
comprobacinmayordelaslneasantesdeprocederconlosclculosdeinterseccin.Uno
delosmsantiguosesfuerzosenestadireccinesunalgoritmodesarrolladoporCyrusy
Beck,quesebasaenelanlisisdelasecuacionesparamtricasdelaslneas.
Posteriormente,LiangyBarskydeformaindependienteidearonunaformainclusoms
rpidadelalgoritmoderecortedelneasparamtrico.
Paraunsegmentodelneacuyospuntosextremossonypodemosdescribirlalneaen
formaparamtrica:

dondey.EnelalgoritmodeLiangBarsky,lasecuacionesparamtricasdelalnease
combinanconlascondicionesderecortedepuntosparaobtenerlasdesigualdades:

pg.78

quesepuedenexpresarcomo:

dondelosparmetrosysedefinenncomo:
,
,
,
,
Cualquierlneaqueseaparalelaaunadelasaristasdelaventanaderecortetieneparael
valordecorrespondienteadicholmite,dondesecorrespondeconloslmitesizquierdo,
derecho,inferiorysuperior,respectivamente.Si,paraesevalorde,tambinobservamos
que,entonceslalneaestcompletamentefueradellmiteysepuedeeliminardelas
consideracionesposteriores.Si,lalneaseencuentradentrodellmitederecorteparalelo.
Cuando,elalargamientoinfinitodelalneaestorientadodesdefuerahaciadentrodel
alargamientoinfinitodeesebordeparticulardelaventanaderecorte.Si,lalneaprocede
dedentrohaciafuera.Paraunvalordistintodecerode,podemoscalcularelvalordeque
secorrespondeconelpuntodondelalneaalargadahastaelinfinitointersectaconla
ampliacindelbordedelaventanadelsiguientemodo:
Paracadalnea,podemoscalcularlosvaloresdelosparmetrosyquedefinenaquella
partedelalneaqueseencuentradentrodelrectnguloderecorte.Elvalorde,se
determinamediantelabsquedaenlasaristasdelrectnguloparalasquelalneaest
orientadadeafuerahaciadentro.Paraestasaristas,calculamos.Elvalordeseobtiene
comoelmayordelconjuntoquecontiene0ylosvaloresder.Inversamente,elvalordese
determinaexaminandoloslmitesparalosquelalneaestorientadadedentrohacia
afuera.Paracadaunadeestasaristassecalculaunvalordeyelvalordeeselmnimodel
conjuntoquecontiene1ylosvaloresdercalculados.Si,lalneaestcompletamente
fueradelaventanaderecorteysepuederechazar.Delocontrario,lospuntosextremosde
lalnearecortadasecalculanapartirdelosdosvaloresdelparmetro.
Porlogeneral,elalgoritmoderecortedelineasdeLiangBarskyesmseficientequeelde
CohenSuthcrland.

pg.79

EjemploderecorteutilizandoelalgoritmodeLiangBarsky
Tenemosunrectnguloderecortecuyadiagonalesde(1,3)a(3,3)querepresenta
nuestravista.QueremosmostrarelsegmentoAB,entalrectnguloderecorte,descritopor
lospuntos,A=(2,1)yB=(2,2).

Obtenemoslosparmetrospyq:
,

(Izquierdo)

(Derecho)

(Inferior)

(Superior)

Determinamoslosparmetros,yparadefinirquepartedelalneaseencuentraenla
ventanaderecorte:

pg.80

Verificar(:
(FALSOlalneanoestcompletamentefuerasinointerceptaalaventanaderecorte.
Enbasealasecuacionesparamtricas:
SientoncesotambincalcularsiSientonces
Asumiendoquelalneainterceptaalbordeizquierdo:

RecortedelneasdeNichollLeeNicholl
Mediantelacreacindemsregionesalrededordelaventanaderecorte,elalgoritmode
NichollLeeNicholl(NLN)evitalosmltiplesclculosdelasinterseccionesdelalnea.Enel
mtododeCohenSutherland,porejemplo,sepodancalcularmltiplesinterseccionesalo
largodelatrayectoriadeunsegmentodelneaantesdelocalizarunainterseccinenel
rectnguloderecorteoderechazarcompletamentelalnea.Estosclculosadicionalesde
interseccionesseeliminanenelalgoritmoNLNmedianteunamayorcomprobacinde
regionesantesdecalcularlasintersecciones.ComparadotantoconelalgoritmodeCohen
SutherlandcomoconeldeLiangBarsky,elalgoritmodeNichollLeeNichollrealizamenos
comparacionesydivisiones.LadesventajadelalgoritmoNLNesqueslosepuedeaplicar
alrecortebidimensional,mientrasquetantoelalgoritmodeLiangBarskycomoelde
CohenSutherlandsepuedenampliarfcilmenteaescenastridimensionales.
Lacomprobacininicialparadeterminarsiunsegmentodelneaestcompletamente
dentrodelaventanaderecorteofuerasepuederealizarconcomprobacionesdecdigos

pg.81

deregin,comoenlosdosalgoritmosprevios.Sinoesposibleunaaceptacinoun
rechazotriviales,elalgoritmoNLNprocedeaestablecerregionesderecorteadicionales.
Paraunalneaconpuntosextremosy,primerodeterminamoslaposicindelpunto
respectoalasnueveposiblesregionesrelativasalaventanaderecorte.Slosenecesita
considerarlastresregionesquesemuestranenlaFigura.

Siseencuentraencualquieradelasotrasseisregiones,podemosmoverloaunadelas
tresregionesdelaFiguraanteriormedianteunatransformacindesimetra.Porejemplo,se
puedetransformarlareginsituadadirectamenteencimadelaventanaderecorteenla
reginsituadaalaizquierdadelaventanautilizandounareflexinrespectodelalneay=
x,opodramosutilizarunarotacinde90ensentidocontrarioalmovimientodelasagujas
delreloj.
Asumiendoqueynoestnambosdentrodelaventanaderecorte,acontinuacin
determinamoslaposicinderespectode.Paraello,creamosalgunasregionesnuevasen
elplano,dependiendodelaposicinde.Loslmitesdelasnuevasregionessonlos
segmentosdelneasemiinfinitosquecomienzanenypasanatravsdelasesquinasdela
ventanaderecorte.Siseencuentradentrodelaventanaderecorte,establecemoslas
cuatroregionesquesemuestranenlaFigurasiguiente.

Despus,dependiendodeculdeestascuatroregiones(L,T,R,oB)contenga,
calculamoslainterseccindelalneaconellmitecorrespondientedelaventana.

pg.82

Siseencuentraenlareginsituadaalaizquierdadelaventana,establecemoslascuatro
regionesetiquetadascomoL,LT,LRyLBenlaFiguraanteriorestascuatroregionesde
nuevodeterminanunanicaaristadelaventanaderecorteparaelsegmentodelnea,
relativaalaposicinde.Porejemplo,siestenunadelastresregionesetiquetadascomo
L,recortamoslalneadellmiteizquierdodelaventanayguardamoselsegmentodelnea
desdeestainterseccina.SiestenlareginLT,salvarnoselsegmentodesdeellmite
izquierdodelaventanahastaellmitesuperior.Unprocesamientosimilarsellevaacaboen
lasregionesLRyLB.PerosinoestenningunadelascuatroregionesL,LT,LRoLB,se
recortalalneacompleta.

pg.83

Eneltercercaso,cuandoestalaizquierdayencimadelaventanaderecorte,utilizamos
lasregionesdelaFiguraanterior.Enestecaso,tenemoslasdosposibilidadesmostradas,
dependiendodelaposicindeconrespectoalaesquinasuperiorizquierdadelaventana
derecorte.Cuandoestcercadellmiteizquierdoderecortedelaventana,utilizamoslas
regionesdelapartado(a)deestafigura.Delocontrario,cuandoestcercadellmite
superiorderecortedelaventana,utilizamoslasregionesdelapartado(b).Siestenuna
delasregionesT,L,TR,TB,LR,oLB.estodeterminaunnicobordedelaventanade
recorteparalosclculosdeinterseccin.Delocontrario,lalneaenteraserechaza.
Paradeterminarlareginenlaqueseencuentra,comparamoslapendientedelsegmento
delneaconlaspendientesdeloslmitesdelasregionesdelalgoritmoNLN.Porejemplo,si
estalaizquierdadelaventanaderecorte,entoncesestenlareginLTsi.
o
Yrecortamoslalneaenterasi,
Losclculosdediferenciasdecoordenadasylosclculosdeproductosutilizadosenlos
testsdelaspendientessealmacenanyseutilizantambinenlosclculosdelas
intersecciones.Apartirdelasecuacionesparamtricas:

calculamoslacoordenadadelainterseccinconellmiteizquierdodelaventanacomo,
porloqueylacoordenadadelainterseccines:
Yparaunainterseccinconellmitesuperiortenemos,y,porloquelacoordenadavale:
EjemploderecorteutilizandoelalgoritmodeLiangBarsky
Tenemosunrectnguloderecortecuyadiagonalesde(1,3)a(3,3)querepresenta
nuestravista.QueremosmostrarelsegmentoAB,entalrectnguloderecorte,descritopor
lospuntos,A=(2,1)yB=(2,2).

pg.84

pg.85

Potrebbero piacerti anche