computacion grafica
DESCRIPTION
lineasTRANSCRIPT
-
pg.1
PRIMITIVASGRFICASAutor:Ing.HERNNNINAHANCOCUSCOPERPRESENTACIN
ElpresentetextosurgedelanecesidaddedisponerdeunmaterialbibliogrficoparaeldesarrollodeaplicacionesdeComputacinGrfica.
INDICEINTRODUCCINElTextoplantealarevisindeconceptosfundamentalesdePrimitivasGrficasquedescribeunaseriedealgoritmosparaeldibujodeprimitivasgrficascomolneas,curvas,rellenadoyrecortes.Paraexplicarelmovimientodefigurasseestudianlasoperacionesbsicasdetransformacionescomoeslatraslacin,rotacinyescalamiento.Enbasealasoperacionesdetransformacinbsicassedescribenlasoperacionesderivadascomolareflexineinclinacin.Pararepresentacionesdevariasoperacionessecuencialesseutilizalastransformacionescompuestasquesonimplementadasutilizandolasmatriceshomogneas.ElconceptodeprimitivasgrficasestacompaadadeimplementacionesenJavaycomolibreragrficaOpenGL.
CAPTULOI:LibreragrficaOpenGLyJava
CAPTULOII:PrimitivasgrficasUnaescenagrficaestcompuestaporvariosobjetosgrficos,paradescribirlaescenasedebedescribiryrepresentarcadaunodelosobjetosgrficosparaestohacemosusodeprimitivasgrficasquecorrespondearepresentacindepuntos,lneas,crculos,superficies,lneascurvas,curvastipospline,polilneas,etc.DescripcindeobjetosgrficosPara describir los objetos grficos de una escena debemos identificar la posicin yorientacin de los objetos en un sistema de coordenadas de referencia en 2D o 3D,seguidamente cada objeto es representado grficamente utilizando primitivas grficas depuntos,lneas,curvas,rellenos,etc.
-
pg.2
Esimportanteconsiderarque,lascoordenadasdepantalladifierendelascoordenadasdelsistemas de referencia por lo tanto es necesario realizar equivalencia entre los dossistemas. El sistema de referencia puede utilizar nmeros enteros o reales en cambio elsistema de coordenada de pantalla solo utiliza nmeros enteros positivos y con lmites
finitos,ysuorigenempiezadesdelaesquinasuperiorizquierda.CAPITULOIII:Algoritmosdelneas
Paraeldibujodeunsegmentodelnearectadebemosconocerlosextremosdelsegmento,para luego, identificar los puntos intermedios entre los extremos del trayecto lineal. Acontinuacindescribiremosalgoritmosparaeldibujodelneas.
Algoritmopuntopendientedelarecta
Dadalaecuacinpuntopendientedelarecta:
Siendo la pendiente de la lnea y el punto de interseccin de la lnea con el eje . Siconsideramoslosdosextremosdelsegmentode lneacon lascoordenadasy ,podemosdeterminarlosvaloresdelapendientey(puntodeinterseccinconeleje)delasiguientemanera:
Podemos utilizar estas ecuaciones para el dibujo de lneas rectas en un dispositivo devisualizacin tomando un intervalo de valores en el eje o para luego determinar suscorrespondientesvaloresenelejeosegnintervaloinicialelegido.
Por ejemplo nos indican dibujar la lnea recta cuyos extremos son = (1,4) y = (9, 6)podemostomarelintervaloenelejecuyoslmitesson1y9paraesteintervalodebemos
0
0 XMAX
YMAX
(3.25.6) (2010)
-
pg.3
identificar sus correspondientes valores en el eje . Tambin es necesario establecer unmuestreodevaloresdentrodelintervaloenelEjequepuedeservaloressucesivosqueseincrementandeunoenunoquevande1a9loslmitesdelintervalo.
Serealizaelusodelaecuacinpuntopendienteparadeterminarlosvaloresenelejeperoes necesario determinar la pendiente y la constante entonces realizamos los clculossiguientes:
Ahora los valores de para cada valor del intervalo en el eje se calcula de la siguientemanera:
Para
Para
Assucesivamentepodemosrealizarlasiguientetabulacin:
1 42 4.253 4.54 4.755 56 5.257 5.58 5.75
-
pg.4
9 6
Seguidamente en base a la tabla podemos dibujar la lnea en un dispositivo devisualizacin.
987654321
1 2 3 4 5 6 7 8 9
Podemos apreciar que para representar los puntos en el dispositivo de visualizacin fuenecesario realizar las aproximaciones puesto que las posiciones en las pantallas soloutilizan nmeros enteros. Por el efecto de las aproximaciones podemos apreciar unaseparacindepixelesyunefectoescalonado.Verifiquemosahoracualseraelescenariosi tomamosun intervaloenYparadeterminarsuscorrespondientesvaloresenelejeX
LapendienteylaconstantebsonlosmismosqueseutilizaronaltomarunintervaloX.Laecuacinquedebemosutilizares:
Esaspara
Esaspara
Esaspara
-
pg.5
Assucesivamentepodemosrealizarlasiguientetabulacin:
1 45 59 6
Seguidamente en base a la tabla podemos dibujar la lnea en un dispositivo devisualizacin.
987654321
1 2 3 4 5 6 7 8 9
987654321
1 2 3 4 5 6 7 8 9
9876
-
pg.6
5
4321
1 2 3 4 5 6 7 8 9
ImplementacinenJava
packagegeometrias.lineas
/*
*Dibujodelneasconpendiente1
-
pg.7
//DibujarunpixelenlaposicinX,Y
dibujarPunto(x,Math.round(y))
//Incrementarlacoordenadax
x++
/*determinarlacoordenaday*/
y=m*x+b
}
}
/*
*AlgoritmoDDAconpendiente1
-
pg.8
intdeltax=xnx0
intdeltay=yny0
intincrA=2*deltay//incrementosiPkesmenora0
intincrB=2*(deltaydeltax)
intpk=2*deltaydeltax//calcularp0
//TomarelintervalodelejeXydeterminarY
while(x
-
pg.9
Vamosaconsiderarprimerounalneaconpendientepositiva.Silapendienteesmenoroigualque1,muestreamosaintervalosunitariossegnelejedelasx(=1)ycalculamoslosvaloressucesivosdeycomo:
(Ecuacin2.6)
Elsubndicekadoptavaloresenteroscomenzandoen0paraelprimerpuntoeincrementndoseenunaunidadcadavezhastaquesealcanzaelextremodelalnea.Puestoquempuedesercualquiernmerorealentre0.0y1.0,cadavalorcalculadodeydeberedondearsealenteromsprximo,loquenosdarlaposicindeunpxeldepantallaenlacolumnaxqueestemosprocesando.Paralaslneasconunapendientepositivasuperiora1.0,invertimoslospapelesxeyesdecir,muestreamosaintervalosunitariosdey(=1)ycalculamoslosvaloresdexconsecutivosmediante:
(Ecuacin2.7)Enestecaso,cadavalordexcalculadoseredondeaalaposicindepixelmscercanaenlalneadeexploracinyactual.LasEcuaciones2.6y2.7estnbasadasenlasuposicindequelaslneasdebenprocesarsedesdeelextremosituadomsalaizquierdahastaelextremosituadomsaladerecha.Siinvertimosesteprocesamiento,demodoquesetomecomopuntoinicialelsituadoaladerecha,entoncestendremosy,
(Ecuacin2.8)
o(cuandolapendienteseasuperiora1)tendremoscon,(Ecuacin2.9)
SerealizarnclculossimilaresutilizandolasEcuaciones2.6a2.9paradeterminarlasposicionesdelospxelesalolargodeunalneaconpendientenegativa.As,sielvalorabsolutodelapendienteesinferiora1yelpuntoinicialseencuentraalaizquierda,haremosycalcularemoslosvaloresdeymediantelaEcuacin2.6.Cuandoelpuntoinicialestaladerecha(paralamismapendiente),haremosyobtendremoslosvaloresyutilizandolaEcuacin2.8.Paraunapendientenegativaconvalorabsolutosuperiora1,usaremosylaEcuacin2.9oylaEcuacin2.7.
Estealgoritmoseresumeenelsiguienteprocedimiento,queaceptacomoentradadosposicionesenterasenlapantallacorrespondientesalosdosextremosdeunsegmentolineal.Lasdiferenciashorizontalesyverticalesentrelosdosextremosseasignanalos
-
pg.10
parmetrosdxydy.Ladiferenciaconmayorvalorabsolutodeterminaelvalordelparmetrosteps.Partiendodelaposicin(x0,y0),determinemoseldesplazamientorequeridoencadapasoparagenerarelsiguientepxeldelalnea.Esteprocesoseejecutaenbucleunnmerodevecesigualasteps.Sielmdulodedxessuperioralmdulodedyyx0esinferioraxEnd,losvaloresdelosincrementosenlasdireccionesxeyson1ym,respectivamente.Sielcambiomayorserealizaenladireccinxperox0essuperioraxEnd,entoncesseutilizanlosdecrementos1ymparagenerarcadanuevopuntodelalnea.Enlosrestantescasos,utilizamosunincremento(odecremento)unitarioenladireccinyyunincremento(odecremento)paraxiguala1/m.
-
pg.11
voidlineDDA(intx0,inty0,intxn,intyn){intxfloatm,y//Calcularlapendientem=(float)(yny0)/(xnx0)x=x0y=y0//Estosolofuncionaparaunalnea//dependientepositivaymenora1while(x
-
pg.12
figura2.2.1:muestreoenelejex figura2.2.2:MuestreoenelejeyLasFigurasanterioresmuestransendasseccionesdeunapantallaenlasquetenemosquedibujardossegmentoslineales.Elejeverticalmuestralasposicionesdelaslneasdeexploracin,mientrasqueelejehorizontalidentificalascolumnasdepxeles.MuestreandoaintervalosunitariossegnelejeXenestosejemplos,necesitamosdecidirculdelasdosposiblesposicionesdepxelestmsprximaaltrayectolinealencadapasodemuestreo.ComenzandoapartirdelextremoizquierdomostradoenlaFigura2.2.1,necesitamosdeterminarenlasiguienteposicindemuestreosidebemosdibujarelpxelcorrespondientealaposicin(11,11)oeldelaposicin(11,12).Deformasimilar,laFigura2.2.2muestrauntrayectolinealconpendientenegativaquecomienzaapartirdelextremoizquierdosituadoenlaposicindepxel(50,50).Enestecaso,debemosseleccionarcomosiguienteposicindepxellascoordenadas(51,50)o(51,49)?.EstaspreguntasserespondenconelalgoritmodeBresenhamcomprobandoelsignodeunparmetroenterocuyovaloresproporcionalaladiferenciaentrelasseparacionesverticalesdelasdosposicionesdepxelconrespectoaltrayectolineal.ParailustrarelalgoritmodeBresenham,vamosprimeroaanalizarelprocesodedigitalizacindelneasconpendientepositivainferiora1.0.Lasposicionesdepxelalolargodeuntrayectolinealsedeterminanentoncesmuestreandoaintervalosunitariossegnelejex.Comenzandoapartirdelextremoizquierdo(x0,y0)deunalneadada,vamosrecorriendocadaunadelassucesivascolumnas(posicinx)ydibujandoelpxelcuyovaloryseamsprximoaltrayectolineal.
-
pg.13
L.aFigura2.2.3ilustraelpasoksimodeesteproceso.Supongaquehemosdeterminadoquehayquedibujarelpxelsituadoen(xk,yk)entoncestendremosquedecidirqupxeldibujarenlacolumnaxk+1=xk+1.Lasdosopcionesexistentessonlospxelesdelasposiciones(xk+1,yk)y(xk+1,yk+1).Enlaposicindemuestreoxk+1,etiquetamoslasseparacionesverticalesdelospxelesconrespectoaltrayectolinealmatemticoconlosnombresdlowerydupper(Figura2.2.4).Lacoordenadaydelalneamatemticaenlacolumnadepxelxk+1secalculacomo:
d1=dupperd2r=dlower
(Ecuacin2.10)Entonces:
(Ecuacin2.11)y
(Ecuacin2.12)
-
pg.14
Paradeterminarculdelosdospxelesestmsprximoalalnea,podemosrealizarunacomprobacinmuyeficientequesebasaenladiferenciaentrelasdosseparacionesdelospxeles:
(Ecuacin2.13)PodemosobtenerunparmetrodedecisinpkparaelpasoksimodelalgoritmodedigitalizacindelneasreordenandolaEcuacin3.13paraqueslohayaquerealizarclculosenteros.Podemoshacerestorealizandolasustitucindonde,ysonlasseparacionesverticalyhorizontalentrelosdosextremosdelalnea,ydefiniendoelparmetrodedecisincomo:
(Ecuacin2.14)
Elsignodeesigualaldeporqueennuestroejemplo.Elparmetroesconstanteytieneelvalor,queesindependientedelaposicindelpxelyseeliminarenlosclculosrecursivosde.Sielpxeldeest"msprximo"altrayectolinealqueelpxelde(esdecir,),entonceselparmetrodedecisinsernegativo.Endichocaso,dibujaremoselpxelinferiorencasocontrario,dibujaremoselsuperior.Loscambiosdecoordenadasalolargodelalneaseproducenenpasosunitariosenlasdireccionesxoy.Portanto,podemosobtenerlosvaloresdelossucesivosparmetrosdedecisinutilizandoclculosenterosincremntales.Enelpaso+1,elparmetrodedecisinseevalaapartirdelaEcuacin2.14como:
PerosirestamoslaEcuacin2.14destaltimaecuacin,tendremos:
Ycomo+1,nosqueda:Ecuacin(2.15)
Dondeeltrminoes01dependiendodelsignodelparmetro.Esteclculorecursivodelosparmetrosdedecisinserealizaencadaposicinenteraxcomenzandoporelextremoizquierdodelalnea.Elprimerparmetrop0,seevalaapartirdelaEcuacin2.14enlaposicininicialdepxel(x0,y0)yconmiguala:
ResumimoselalgoritmodeBresenhamparalneasconunapendienteinferiora1enelsiguienterecuadro.Lasconstantesysecalculanunanicavezparacadalneaquehayquedigitalizar,porloquelasoperacionesaritmticassolorequierensumasyrestasenterasdeestasdosconstantes.
-
pg.15
AlgoritmodeBresenhamparadibujodelneascon|m|
-
pg.16
arcoscirculares.Asimismo,enocasioneshaydisponibleunafuncingenricaenlasbibliotecasgrficasparamostrardiversostiposdecurvas,incluyendocrculosyelipses.Propiedadesdeloscrculos
FigurapropiedadesdelcrculoUncrculo(Figuraanterior)sedefinecomoelconjuntodepuntosqueseencuentranaunadistanciadeterminadaconrespectoaunaposicincentral).Paracualquierpunto)delcrculo,estarelacindedistanciaseexpresamedianteelteoremadePitgorasencoordenadascartesianas:
Podemosutilizarestaecuacinparacalcularlaposicindelospuntossobreunacircunferencia,recorriendoelejexenpasosunitariosdesdeaycalculandoloscorrespondientesvaloresyencadaposicinmediantelafrmula:
Peroestenoeselmejormtodoparageneraruncrculo.Unodelosproblemasconestemtodoesquerequiereunosconsiderablesclculosencadapaso.Adems,elespaciadoentrelospxelesdibujadosnoesuniforme,comoseilustraenlasiguientefigura.
EjemploDeterminaryvisualizarlospuntosdeunacircunferenciaconcentroeny.
-
pg.17
ElmuestreoenelejeX,latabladevaloreseselsiguiente:
X +y y5 0,0 0,04 3,0 3,03 4,0 4,02 4,6 4,61 4,9 4,90 5,0 5,01 4,9 4,92 4,6 4,63 4,0 4,04 3,0 3,05 0,0 0,0
5 4 3 2 1 01 2 3 4 5 5 4 3 2 1 0 1 2 3 4 5
Paramejorarelgrficopodramosajustarelespaciadointercambiandoxey(recorriendolosvaloresyycalculandolosvaloresxcuandoelvalorabsolutodelapendientedelcrculoseasuperiora1.Peroestosimplementeincrementalacantidaddeclculosydeprocesamientorequeridaporelalgoritmo.Excentricidad
Otraformadeeliminarelespaciadodesigualesutilizandocoordenadaspolaresry.
-
pg.18
Ecuacindelacircunferenciaenformaparamtricapolar:
Alutilizarunpasoangularfijo,sedibujarauncrculoconpuntosequiespaciadosalolargodetodalacircunferencia.Parareducirelnmerodeclculospodemosutilizarunagranseparacinangularentrelospuntosyconectarlospuntosmedianteunsegmentodelnearectaconelfindeaproximarlatrayectoriacircular.Ejemplo.Determinaryvisualizarlospuntosdeunacircunferenciaconcentroenyutilizandoecuacionesparamtricas.Consideramoselngulo
X Y0
k Theta x y0 0 5 01 0,52359878 4 32 1,04719755 3 43 1,57079633 0 54 2,0943951 3 4
-
pg.19
5 2,61799388 4 36 3,14159265 5 07 3,66519143 4 38 4,1887902 3 49 4,71238898 0 5
10 5,23598776 3 411 5,75958653 4 312 6,28318531 5 0
5 4 3 2 1 01 2 3 4 5 5 4 3 2 1 0 1 2 3 4 5
Paraobteneruntrazadomscontinuoenunmonitordigital,podemosfijarcomopasoangularelvalor.Estonosdaposicionesdepixelesqueestnseparadosaproximadamenteunaunidad.
Peroaunquelascoordenadaspolaresproporcionanunespaciadohomogneodelospuntos,losclculostrigonomtricossiguensiendobastantelaboriosos.Paracualquieradelosmtodosanterioressepuedereducirlosclculosutilizandolasimetraquesepresentanenloscrculos.Laformadeloscrculosessimilarencadaunodeloscuadrantes.Portanto,sideterminamoslasposicionesdelacurvaenelprimercuadrante,podemosgenerarlaseccincirculardelsegundocuadrantedelplanoxobservandoqueambasseccionessonsimtricasconrespectoalejey.YlasseccionescircularesdeloscuadrantesterceroycuartopuedenobtenerseapartirdelasseccionesdelosprimeroscuadrantesconsiderandolasimetraconrespectoalejeX.Enbaseaesterazonamientopodemosidentificarlasimetraentreloslosoctantes.rehacergraficodesimetriadeoctantes!!!!!
-
pg.20
Aprovechandotodalasimetradelcrculodeestaforma,podemosgenerartodaslasposicionesdelpxelalrededordelcrculocalculandonicamentelospuntoscorrespondientesalsectorquevadesdea.Lapendientedelacurvaenesteoctantetieneunamagnitudigualoinferiorauno.Para,lapendientedelcrculoescero,yparalapendientees1.0.Considerandoloanterior,todavalosclculossiguensiendocomplejos,porlosclculoscontrigonomtricosyraces.Porlotanto,debemosbuscaralgoritmosconparmetrosdedecisincomoBresenhamparalneasdondeserealizanclculodenmerosenteros.PodemosadaptarelalgoritmodedibujodelneasdeBresenhamalageneracindecrculosdefiniendolosparmetrosdedecisinparahallarelpxelmscercanoalacircunferenciaencadapasodemuestreo.Sinembargo,laEcuacincartesianadelcrculoesnolineal,porioqueharafaltacalcularracescuadradasparahallarlasdistanciasdelospxelesconrespectoalatrayectoriacircular.ElalgoritmodeBresenhamparacrculosevitaestosclculosderacescuadradascomparandoloscuadradosdelasdistanciasdeseparacindelospxeles.Sinembargo,sepuederealizarunacomparacindirectadedistanciassinnecesidaddehallarracescuadradas.Laideabsicaquesubyaceaestemtodoconsisteencomprobarsielpuntomediosituadoentredospxelesestsituadodentroofueradelcrculo.Estemtodosepuede,asimismo,generalizarmsfcilmenteaotrascnicasyparauncrculoderadioentero,estatcnicadelpuntomediogeneralasmismasposicionesdepxelqueelalgoritmodeBresenhamparacrculos.Paraunsegmentodelnearecta,elmtododelpuntomedioescompletamenteequivalentealalgoritmodeBresenhamparalneas.Asimismo,elerrormximoalahoradedeterminarlasposicionesdelospxelesparacualquierseccincnicautilizandoeltestdelpuntomedioestlimitadoaunmediodelaseparacinentrepxeles.AlgoritmodelpuntomedioparacrculosComoenelejemplodedigitalizacindelneas,muestreamosaintervalosunitariosydeterminadoslaposicindepxelmsprximaalatrayectoriacircularespecificada.Paraunradiordadoyunascoordenadasdelcentrodevalor,podemosprimeroejecutarelalgoritmoparacalcularlasposicionesdelospxelesalrededordeunatrayectoriacircularcentradaenelorigendecoordenadas(0,0).Despus,movemoscadaposicincalculada(x,y)alaposicindepantallaadecuadasumando.axyay.Alolargodelaseccincircularquevadesdex=0ax=yenelprimercuadrante,lapendientedelacurvavaradesde0a1.0.Portanto,podemostomarpasosunitariosenladireccinxpositivaalolargodeesteoctanteyutilizarunparmetrodedecisinparadeterminarculdelasdosposiblesposicionesdepxelencadacolumnaestmscercaverticalmentealatrayectoriacircular.Lasposicionesenlosotrossieteoctantesseobtienenentoncesporsimetra.
-
pg.21
Paraaplicarelmtododelpuntomedio,definimosunafuncincircularcomo:
LascomprobacionesdelaEcuacinanteriorserealizanparalospuntosintermediossituadosenlavecindaddelatrayectoriacircularencadapasodemuestreo.As.lafuncingeneradoradelcrculoesunparmetrodecisinenelalgoritmodelpuntomedio,ypodemosdeterminarlosclculosincrementalesnecesariosparaestafuncin,comohicimosconelalgoritmodegeneracindelneas.
EnlafiguraanteriorsemuestraelpuntomedioentrelosdospixelescandidatosparalaposicindemuestreoXy.Suponiendoqueacabamosdedibujarelpxel.necesitaremosacontinuacindeterminarsielpxelenlaposicinseencuentramscercaomslejosdelcrculoqueelsituadoenlaposicin.NuestroparmetrodedecisinserlaEcuacinsiguientedegeneracindelcrculo,evaluadoenpuntomedioentreestosdospixeles:
Si,estepuntomedioseencontrarenelinteriordelcrculoyelpxelsituadoenlalneadeexploracinestarmscercadelafronteradelcrculo.Encasocontrario,elpuntointermedioseencuentrafueradelcrculoosobrelamismacircunferencia,yseleccionaremoselpxelcorrespondientealalneadeexploracin.Lossucesivosparmetrosdedecisinseobtienenutilizandoclculosincrementales.Podemosobtenerunafrmularecursivaparaelsiguienteparmetrodedecisinevaluandolafuncincircularenlaposicindemuestreo:
-
pg.22
Dondees,dependiendodelsignode.Losincrementosparaobtenerson(siesnegativo)o.Laevaluacindelostrminosytambinpuedehacerseincrementalmentemediantelasfrmulas:
Enlaposicininicial(0,r),estosdostrminostienenlosvalores0y2r,respectivamente.Cadavalorsucesivoparaeltrminoseobtienesumando2alvaloranteriorycadavalorsucesivodeltrminoseobtienerestando2alvaloranterior.Elparmetrodedecisininicialseobtieneevaluandolafuncindegeneracindelcrculoenlaposicininicial:
Sielradiorestespecificadocomounvalorentero,podemossimplementeredondeardelaformasiguiente:
(Pararentero)dadoqueTodoslosincrementossonenteros.ComoenelalgoritmodelneasdeBresenham,elmtododelpuntomediocalculalasposicionesdelospixelesalolargodelacircunferenciautilizandosumasyrestasenteras,suponiendoquelosparmetrosdelcrculoestnespecificadosencoordenadasenterasdepantalla.Podemosresumirlospasosdelalgoritmodelpuntomedioparageneracindecrculosdelaformasiguiente.
Algoritmo:1.Introducirelvalorderyelcentrodelcrculo.Puntoinicialdelcrculo.2.Calcularelvalorinicialdelparmetrodedecisincomo:
3.Paracadaposicincomenzandoenk=0,realizarlasiguientecomprobacin:Si,elsiguientepuntoalolargodeuncrculocentradoen(0,0)sery
encasocontrario,elsiguientepuntodelcrculoser:y
Donde:
-
pg.23
4.Determinarlospuntossimtricosdelosotrossieteoctantes.5.Movercadaposicindelpxel(x,y)calculandolatrayectoriacircularcentradaenydibujarlosvaloresdelascoordenadas:
6.Repetirlospasosdel3al5hastaque
CAPTULOV:AlgoritmosparalageneracindeelipsesEntrminossimples,unaelipseesuncrculoalargado.Tambinpodemosescribirunaelipsecomouncrculomodificadocuyoradiovaradesdeunvalormximoenunadireccinhastaunvalormnimoenladireccinperpendicular.Lossegmentosdelnearectatrazadosenelinteriordelaelipseenestasdosdireccionesperpendicularessedenominaejemayorymenordelaelipse.PropiedadesdelaselipsesPuededarseunadefinicinprecisadeunaelipseentrminosdeladistanciadesdecualquierpuntodelaelipseadosposicionesfijas,denominadasfocosdelaelipse.Lasumadeestasdosdistanciasesconstanteparatodoslospuntosdelaelipse.
SietiquetamoscomoylasdistanciasalosfocosdesdecualquierpuntoP=(x,y)delaelipse,laecuacingeneraldelaelipsepuedeescribirse:
Expresandolasdistanciasyentrminosdelascoordenadasdelosfocosy.Tendremos:(Ecuacin2.4.1)
Elevandoestaecuacinalcuadrado,despejandolarazcuadradarestanteyvolviendoaelevaralcuadrado,podremosreescribirlaecuacingeneraldelaelipsedelaforma
(Ecuacin2.4.2)
-
pg.24
dondeloscoeficientesA,B,C,D,EyFseevalanentrminosdelascoordenadasdelosfocosydelasdimensionesdelosejesmayorymenordelaelipse.Elejemayoreselsegmentodelnearectaqueseextiendedesdeunladodelaelipsehastaelotroatravsdelosfocos.Elejemenorabarcaladimensinmspequeadelaelipse,bisecandoperpendicularmenteelejemayorensupuntomedio(centrodelaelipse)situadoentrelosdosfocos.Unmtodointeractivoparaespecificarunaelipseconunaorientacinarbitrariaconsisteenintroducirlosdosfocosyunpuntodelaelipse.Conestostresconjuntosdecoordenadas,podemosevaluarlaconstantedelaEcuacin2.4.1.Entonces,sepuedencalcularlosvaloresdeloscoeficientesdelaEcuacin2.4.2yutilizarlosparagenerarlospxelesalolargodelatrayectoriaelptica.Lasecuacionesdelaelipsesepuedensimplificarenormementesisealineanlosejesmayorymenorconlosejesdecoordenadas.EnlaFigurasemuestraunaelipseenposicinestndar,conlosejesmayorymenororientadosenparaleloalosejesxey.
Elparmetrorxdeesteejemploindicaelsemiejemayor,mientrasqueelparmetroryindicaelsemiejemenor.LaecuacindelaelipsemostradaenlaFigurapuedeescribirseentrminosdelascoordenadasdelcentrodelaelipseydelosparmetrosrxyrydelaformasiguiente:
Ecuacin2.4.3Utilizandolascoordenadaspolaresry,podemostambindescribirlaelipseensuposicinestndarconlasecuacionesparamtricas.
-
pg.25
Elngulo,denominadongulodeexcentricidaddelaelipse,semidealolargodelpermetrodeuncrculocircunscrito.Si,elradiodelcrculocircunscritoes.Encasocontrario,elcrculocircunscritotienecomoradio.
Aligualqueconelalgoritmodelcrculo,puedenutilizarseconsideracionesdesimetraparareducirlosclculos.Unaelipseenposicinestndarpresentasimetraentrelosdistintoscuadrantespero,adiferenciadelcrculo,losdosoctantesdecadacuadrantenosonsimtricos.Portanto,deberemoscalcularlasposicionesdelospxelesalolargodelarcoelpticoquerecorreuncuadranteyluegoutilizarlasconsideracionesdesimetraparaobtenerlasposicionesdelacurvaenlostrescuadrantesrestantes.
-
pg.26
AlgoritmodelpuntomedioparalaelipseLatcnicaquevamosautilizaressimilaralaquehemosempleadoparavisualizarelcrculodigitalizado.Dadoslosparmetros,y,determinamoslasposicionesdelacurvaparaunaelipseenposicinestndarcentradaenelorigenyluegodesplazamostodoslospuntosutilizandoundesplazamientoconstante,demodoquelaelipseestcentradaen.Siqueremostambinmostrarlaelipseenposicinnoestndar,podemosrotarlaalrededordesucentroconelfindereorientarlosejesmayorymenorenlasdireccionesdeseadas.Peroporelmomento,vamosaconsiderarnicamentelavisualizacindeelipsesenposicinestndar.Elmtododelpuntomedioparalaelipseseaplicaendospartesparatodoelprimercuadrante.
-
pg.27
LaFiguramuestraladivisindelprimercuadrantedeacuerdoconlapendientedeunaelipseconrx
-
pg.28
As,lafuncindelaelipsesepuedeutilizarcomoparmetrodedecisinparaelalgoritmodelpuntomedio,Encadaposicindemuestreo,seleccionamoselsiguientepxeldelatrayectoriaelpticadeacuerdoconelsignodelafuncindelaelipse,evaluadoenelpuntomedioentrelosdospxelescandidatos.Comenzandoen(0,ry)tomamospasosunitariosenladireccinxhastaquealcanzamoslafronteraentrelasregiones1y2.Despus,pasamosautilizarpasosunitariosenladireccinyparaelrestodelacurvadentrodelprimercuadrante.Encadapaso,necesitamoscomprobarelvalordelapendientedelacurva.LapendientedelaelipsesecalculaapartirdelaEcuacin2.4.4:
Enlafronteraentrelaregin1ylaregin2,y,
Portanto,habremossalidodelaregin1cuando:
LaFiguramuestraelpuntomedioentrelosdospxelescandidatosenlaposicindemuestreoxk+1.dentrodelaprimeraregin.Suponiendoquehayamosseleccionadolaposicin(xk,yk)enelpasoanterior,determinamoslasiguienteposicinalolargodelatrayectoriaelpticaevaluandoelparmetrodedecisin(esdecir,lafuncindelaelipsedadaenlaEcuacin2.4.4)endichopuntointermedio:
Si
-
pg.29
Losincrementosparalosparmetrosdedecisinpuedencalcularseutilizandonicamentesumasyrestas,comoenelalgoritmodeloscrculos,yaquelosvaloresparalostrminosypuedenobtenerseincrementalmente.Enlaposicininicial,estosdostrminostienencomovalor:
Ecuacin2.4.5Ecuacin2.4.6
Amedidaqueseincrementanxey,losvaloresactualizadosseobtienensumandoalvaloractualdeltrminodeincrementodelaEcuacin2.4.5yrestandodelvaloractualdeltrminodeincrementodelaEcuacin2.4.6.Losvaloresdeincrementoactualizadossecomparanencadacasoynosmoveremosdelaregin1alaregin2cuandosesatisfagalacondicin.Enlaregin1,elvalorinicialdelparmetrodedecisinseobtieneevaluandolafuncindelaelipseenlaposicininicial:
Enlaregin2,muestreamosaintervalosunitariosenladireccinynegativayelpuntomediosetomarahoraentrepxeleshorizontalesparacadapasodemuestreocomosemuestralaFigura.
-
pg.30
Paraestaregin,elparmetrodedecisinseevalacomo:
Si>0,elpuntomedioseencontrarfueradelaelipseyseleccionaremoselpxelcorrespondientea.Si.elpuntomedioestarsobrelaelipseodentrodeellayseleccionaremoslaposicindepxelParadeterminarlarelacinentreparmetrosdedecisinsucesivosdentrodelaregin2,evaluamoslafuncindelaelipseenelsiguientepuntodemuestreo:
donde,vale,dependiendodelsignode.Cuandoentramosenlaregin2,setomacomoposicininiciallaltimaposicinseleccionadaenlaregin1.yelparmetrodedecisininicialenlaregin2serentonces:
Parasimplificarelclculode.podemosseleccionarlasposicionesdelospixelesensentidocontrarioalasagujasdelreloj,comenzandoen(,0).Lospasosunitariossetomaranentoncesenladireccinypositiva,hastaalcanzarlaltimaposicinseleccionadaenlaregin1.
-
pg.31
Elalgoritmodepuntomediopuedeadaptarseparagenerarunaelipseenposicinnoestndar,utilizandolafuncindelaelipsedadaporlaEcuacinycalculandolasposicionesdelospixelesalolargodetodalatrayectoriaelptica.Alternativamente,podemosreorientarlosejesdelaelipseparaponerlosenposicinestndar,utilizandolosmtodosdetransformacinexplicadosenlossiguientesapartadosdelpresentedocumento,despusdelocualseaplicaraelalgoritmodelpuntomedioparaelipsesconelfindedeterminarlasposicionesdelacurvafinalmente,lasposicionesdepxelcalculadasseconvertiranparaobtenerlasposicionescorrespondientessegnlaorientacinoriginaldelaelipse.Suponiendoquenosden,yelcentrodelaelipseencoordenadasdepantallaenteras,slohacenfaltaclculosincrementalesenterosparadeterminarlosvaloresdelosparmetrosdedecisinenelalgoritmodelpuntomedioparageneracindeelipses.Losincrementos,,yseevalanunanicavezalprincipiodelprocedimiento.
Algoritmodelpuntomedioparageneracindeunaelipse1.Introducir,yelcentrodelaelipseyobtenerelprimerpuntosobreunaelipsecentradaenelorigen,delaformasiguiente:
2.Calcularelvalorinicialdelparmetrodedecisinenlaregin1mediantelafrmula:
3.Encadaposicindentrodelaregin1.comenzandoenk=0,realizarlasiguientecomprobacin.Si,elsiguientepuntoalolargodelaelipsecentradaen(0,0)es y
Encasocontrario,elsiguientepuntoalolargodelaelipseseryy.
con
debiendocontinuaresteprocesohastaque.4.Calcularelvalorinicialdelparmetrodedecisinenlaregin2mediantelafrmula:
dondeeslaltimaposicincalculadaparalaregin1.5.Encadaposicindelaregin2,comenzandoenk=0,realizarlasiguientecomprobacin.Si>0,elsiguientepuntoalolargodelaelipsecentradaen(0,0)seryEncasocontrario,elsiguientepuntoalolargodelaelipsesery
-
pg.32
utilizandolosmismosclculosincrementalesparaxeyqueenlaregin1.Esteprocesodebecontinuarhastaquey=0.6.Paraambasregiones,determinarlospuntossimtricosenlosotrostrescuadrantes.7.Movercadaposicindepxel(x,y)calculadaalatrayectoriaelpticacentradaen(xc,yc)ydibujarlosvaloresdecoordenadas:
EjemploDibujodeunaelipsemedianteelalgoritmodelpuntomediodadoslosparmetrosdeentradaparalaelipserx=18yry=16.
-
pg.33
CAPTULOVI:PrimitivasderellenadodereasOtroelementotil,ademsdelospuntos,lossegmentoslinealesylascurvas,paraladescripcindeloscomponentesdeunaimagensonlasreasrellenasconalgncolorhomogneoopatrn.Unelementodeimagendeestetiposedenominanormalmenterearellena.Lamayoradelasveces,lasreasrellenasseutilizanparadescribirlassuperficiesdelosobjetosslidos,perotambinresultantilesendiversasotrasaplicaciones.Asimismo,lasregionesrellenassuelensersuperficiesplanas,principalmentepolgonos.Peroentrminosgeneraleshaymuchostiposdeformasposiblesparaunaregindeldibujoquepodamosquererrellenarconalgndeterminadocolor.Aunquepuedenexistirreasrellenasdecualquierforma,lasbibliotecasgrficasnosuelensoportarlaespecificacindeformasderellenoarbitrarias.Lamayoradelasrutinasdebibliotecarequierenquelasreasderellenoseespecifiquenenformadepolgonos.Lasrutinasgrficaspuedenprocesarmseficientementelospolgonosqueotrostiposdereasderelleno,porquelasfronterasdelospolgonossedescribenmedianteecuacioneslineales.Adems,lamayoradelassuperficiescurvaspuedenaproximarserazonablementebienmedianteunaseriedeparchespoligonales,delamismaformaqueunalneacurvapuedeaproximarsemedianteunconjuntodesegmentoslineales.Ycuandoseaplicanefectosdeiluminacinyprocedimientosdesombreadodesuperficies,lasuperficiecurvaaproximadapuedemostrarseconungradoderealismobastantebueno.Laaproximacindeunasuperficiecurvamediantecaraspoligonalessedenominaenocasionesteselacindelasuperficie,oajustedelasuperficiemedianteunamallapoligonal.Lavisualizacindetalestiposdefiguraspuedegenerarsemuyrpidamentemediantevistasalmbricas,queslomuestranlasaristasdelospolgonosconelfindeproporcionarunaindicacingeneraldelaestructuradelasuperficie.Posteriormente,elmodeloalmbricopuedesombrearseparagenerarunaimagendeunasuperficiematerialconaspectonatural.Losobjetosdescritosconunconjuntodeparchesdesuperficiepoligonalessesuelendenominarobjetosgrficosestndarosimplementeobjetosgrficos.Engeneral,podemoscrearreasrellenasconcualquierespecificacindecontorno,comoporejemplouncrculoounconjuntoconectadodeseccionesdecurvasdetipospline.Yalgunosdelosmtodospoligonalesexplicadosenlasiguienteseccinpuedenadaptarseparamostrarreasderellenoconcontomosnolineales.2.5.1.reasderellenopoligonalesDesdeelpuntodevistamatemtico,unpolgonosedefinecomounafiguraplanaespecificadamedianteunconjuntodetresomspuntos,denominadosvrtices,queseconectanensecuenciamediantesegmentoslineales,denominadosbordes,oaristasdelpolgono.Adems,engeometrabsica,esnecesarioquelasaristasdelpolgononotenganningnpuntoencomnapartedelosextremos.As,pordefinicin,unpolgono
-
pg.34
debetenertodossusvrticesenunmismoplanoylasaristasnopuedencruzarse.Comoejemplosdepolgonospodemoscitarlostringulos,losrectngulos,losoctgonosylosdecgonos.Algunasveces,cualquierfiguraplanaconuncontornodetipopolilneacerradosedenominatambinpolgono,ysiademssusaristasnosecortanseledenominapolgonoestndaropolgonosimple.Paratratardeevitarreferenciasambiguasalosobjetos,utilizaremoseltrminopolgonoparareferirnosexclusivamentealasformasplanasquetienenuncontornodetipopolilneacerradayenelquelasaristasnosecortan.Paraunaaplicacininfogrfica,esposiblequeunconjuntodesignadodevrticesdeunpolgononocaiganexactamenteenunmismoplano.Estopuededebersealoserroresderedondeoenelclculodelosvaloresnumricos,aerroresenlaseleccindelascoordenadasdelosvrticeso,msnormalmente,alaaproximacindeunasuperficiecurvamedianteunconjuntodeparchespoligonales.Unaformaderectificaresteproblemaconsistesimplementeendividirlamalladesuperficieespecificadaenunaseriedetringulos.Peroenalgunoscasospuedehaberrazonespararetenerlaformaoriginaldelosparchesdelamalla,asquesehandesarrolladomtodosparaaproximarunaformapoligonalnoplanamedianteunafiguraplana.ClasificacionesdelospolgonosUnngulointeriordeunpolgonoesunngulodentrodelcontornodelpolgonoqueestformadopordosaristasadyacentes.Sitodoslosngulosinterioresdeunpolgonosonmenoresoigualesque180,elpolgonoesconvexo.Unadefinicinequivalentedepolgonoconvexoeslaquedicequeelinteriordelpolgonoestcompletamentecontenidoenunodelosladosdelalneadeextensininfinitadecualquieradesusaristas.Asimismo,siseleccionamoscualesquieradospuntosdelinteriordeunpolgonoconvexo,elsegmentodelneaqueunelosdospuntosseencuentratambinenelinteriordelpolgono.Unpolgonoquenoesconvexosedenominacncavo.Dibujarejemplosdepolgonosconvexosycncavos.Amenudoseutilizaeltrminopolgonodegeneradoparadescribirunconjuntodevrticesquesoncolinealesoenelquealgunosdelosvrticessoncoincidentes.Losvrticespolilinealesgeneranunsegmentodelnea,mientrasquelosvrticesrepetidospuedengenerarunaformapoligonalconlneasextraas,aristassolapadasoaristasdelongitud0.Algunasvecesseaplicatambineltrminopolgonodegeneradoaunalistadevrticesquecontienenmenosdetresvrtices.Paraserrobusto,unpaquetegrficopodrarechazarlosconjuntosdevrticesdegeneradosonoplanares,peroestorequierepasosdeprocesamientoadicionalesparaidentificarestosproblemas,porloquelossistemasgrficossuelendejardichotipodeconsideracionesalprogramador.
-
pg.35
Lospolgonoscncavostambinpresentanproblemas.Laimplementacindelosalgoritmosderellenadoydeotrasrutinasgrficasesmscomplicadaparalospolgonoscncavos,porloquesuelesermseficientepartirunpolgonoenunconjuntodepolgonosconvexosantesdecontinuarconsuprocesamiento.Aligualquesucedeconotrosalgoritmosdepreprocesamientodepolgonos,ladivisindepolgonoscncavosnosueleincluirseenlasbibliotecasgrficas.Algunospaquetesgrficos,incluyendoOpenGL,requierenquetodoslospolgonosrellenosseanconvexos,mientrasqueotrossistemassloaceptanreasderellenotriangulares,quesimplificanenormementemuchosdelosalgoritmosdevisualizacin.Unpolgonocncavotienealmenosunodesusngulosinterioressuperiora180.Asimismo,laextensindealgunasaristasdeunpolgonocncavosecortarconotrasaristas,yalgunasparejasdepuntosdelinteriordelpolgonoproducirunsegmentodelneaqueinterceptaalcontornodelpolgono.Portanto,podemosutilizarcualquieradeestascaractersticasdeunpolgonocncavocomobaseparaconstruirunalgoritmodeidentificacin.Siasignamosunvectoracadaaristadeunpolgono,podemosutilizarelproductovectorialdelasaristasadyacentesparacomprobarlaconcavidad.Todosesosproductosvectorialestendrnelmismosigno(positivoonegativo)enlospolgonosconvexos.Portanto,sialgnproductovectorialnosdaunvalorpositivoyotronosdaunvalornegativo,tendremosunpolgonocncavo.LaFigurailustraelmtododelproductovectorialdelosvectoresdelasaristasparalaidentificacindepolgonoscncavos.
-
pg.36
Otraformadeidentificarunpolgonocncavoconsisteenexaminarlasposicionesdelosvrticesdelpolgonoenrelacinconlalneadeextensindecualquierarista.Sialgunosdelosvrticesseencuentranaunladodelalneadeextensinyotrosestnenelotrolado,elpolgonosercncavo.DivisindelospolgonoscncavosUnavezidentificadounpolgonocncavo,podemosdividirloenunconjuntodepolgonosconvexos.Estopuederealizarseutilizandolosvectoresdelasaristasylosproductosvectorialescorrespondientes.Alternativamente,podemosutilizarlasposicionesdelosvrticesenrelacinconlalneadeextensindeunaaristaparadeterminarquvrticesseencuentranenunladodelalneayculesestnenelotro.Paralossiguientesalgoritmos,vamosasuponerquetodoslospolgonosseencuentranenelplanoxy.Porsupuesto,laposicinoriginaldeunpolgonodescritaencoordenadasuniversalespuedenoestarenelplanoxyperosiemprepodemosmoverlohastaeseplanoutilizandolosmtodosdetransformacin.Conelmtodovectorialparadividirunpolgonocncavo,primeronecesitamosformarlosvectoresdelasaristas.Dadasdosposicionesdevrticeconsecutivas,y,definimoselvectordelaaristaquelosunedelaformasiguiente:
Acontinuacincalculamoslosproductosvectorialesdelossucesivosvectoresdelasaristas,siguiendoelordendelpermetrodelpolgono.SilacomponenteZdealgnproductovectorialespositivamientrasqueotrosproductosvectorialestienenunacomponenteznegativa,elpolgonoescncavo,mientrasqueencasocontrarioelpolgonoserconvexo.Estopresuponequenohayatresvrticessucesivosolineales,yaqueenesecasoelproductovectorialdelosdosvectoresrepresentativosdelasaristasqueconectanestosvrticessercero.Sitodoslosvrticessoncolineales,tendremosunpolgonodegenerado(unalnearecta).Podemosaplicarelmtodovectorialprocesandolosvectoresdelasaristasensentidocontrarioalasagujasdelreloj.Sicualquieradelosproductosvectorialestieneunacomponenteznegativa(comolaFigura),elpolgonosercncavoypodemospartirloutilizandolalneadelprimerodelosvectoresconlosquesehacalculadoelproductovectorial.Elsiguienteejemploilustraestemtodoparaladivisindeunpolgonocncavo.
-
pg.37
Tambinpodemosdividirunpolgonocncavoutilizandounmtodorotacional.Vamosamovernosensentidocontrarioalasagujasdelrelojsiguiendolasaristasdelpolgono,yvamosadesplazarlaposicindelpolgonodemodoquecadavrticeseencuentreportumoenelorigendecoordenadas.Acontinuacin,rotamoselpolgonoalrededordelorigenenelsentidodelasagujasdelreloj,demodoqueelsiguientevrticeseencuentresobreelejex.Sielsiguientevrtice,,estpordebajodelejex,elpolgonosercncavo.Enestecaso,partiremoselpolgonosegnelejexparaformardosnuevospolgonosyrepetiremoseltestdeconcavidadparacadaunodelosdosnuevospolgonos.Lospasosanterioresserepitenhastaquehayamoscomprobadotodoslosvrticesdelalistadepolgonos.LaFigurailustraelmtodorotacionalparaladivisindeunpolgonocncavo.
-
pg.38
DivisindeunpolgonoconvexoenunconjuntodetringulosUnavezobtenidalalistadevrticesparaunpolgonoconvexo,podemostransformarloenunconjuntodetringulos.Estopuedehacerseseleccionandoprimerocualquiersecuenciadetresvrticesconsecutivosyformandoconellaunnuevopolgono(untringulo).Entoncesseborraelvrticeintermediodeltringulodelalistadevrticesoriginal,volvindoseaaplicarelmismoprocedimientoaestalistadevrticesmodificadaparaextraerotrotringulo.Continuamosformandotringulosdeestaformahastaqueelpolgonooriginalquedereducidoaslotresvrtices,quedefinirnelltimotringulodelconjunto.Unpolgonocncavotambinpuededividirseenunconjuntodetringulosutilizandoestatcnica,siempreycuandolostresvrticesseleccionadosencadacasoformenunngulointeriorqueseainferiora180(unnguloconvexo).
2.6.Generacindecaracteres.Lasimgenesgrficasincluyenamenudoinformacintextual,comoporejemploetiquetas,grficas,cartelesenedificiosovehculoseinformacingeneraldeidentificacinparaaplicacionesdesimulacinyvisualizacin.Lamayoradelospaquetesgrficosincluyenrutinasparagenerarprimitivasdecaracteresgrficos.Algunossistemasproporcionanunamplioconjuntodefuncionesdecaracteres,mientrasqueotrossloofrecenunsoportedegeneracindecaracteresmnimo.Lasletras,losnmerosyotroscaracterespuedenmostrarsecondiversostamaosyestilos,elestiloglobaldediseoparaunconjunto(ofamilia)decaracteressedenominatipo
-
pg.39
deletra.Hoyenda,haydisponiblesmilesdetiposdeletradistintosparaaplicacionesinformticas,comoporejemploCourier,Helvtica,NewYork,PalatinooZapfChancery.Originalmente,eltrminofuentehacareferenciaaunconjuntodecaracteresextruidosenmetalconuntamaoyformatoconcretos,comoporejemploCourierItlicade10puntosoPalatinoNegritade12puntos.Unafuentede14puntostieneunaalturatotaldeloscaracteresdeunos0,5centmetrosenotraspalabras72puntosesaproximadamenteequivalentea2,54centmetros(unapulgada).Hoyenda,seusanlostrminosfuenteytipodeletrademaneraintercambiable,yaquelastareasmodernasdeimpresinraramenteserealizanconcaracteresextruidosenmetal.Lostiposdeletra(ofuertes)puedendividirseendosampliosgrupos:serifysansserif.Untiposeriftienepequeaslneasoacentosenlosextremosdelosprincipalestrazosdeloscaracteres,mientrasquelostipossansserifnotieneestetipodeacentos.Lostiposserifsongeneralmentemslegiblesesdecir,esmsfcilleergrandesbloquesdetexto.Porotraparte,loscaracteresindividualesdelostipossansserifsonmsfcilesdereconocer,porloqueestetipodeletraresultaadecuadaparaetiquetasycortosencabezados.Lasfuentestambinseclasificandependiendodesisonmonoespaciadasoproporcionales.Todosloscaracteresdeunafuentemonoespaciadatienenlamismaanchura,mientrasqueenunafuenteproporcionallaanchuradeloscaracteresvara.Seutilizandosrepresentacionesdiferentesparaalmacenarfuentesenunacomputadora.Unmtodosimplepararepresentarlasformasdeloscaracteresenuntipodeletraconcretoconsisteendefinirunpatrndevaloresbinariossobreunacuadrcularectangular.Entonces,eseconjuntodecaracteressedenominafuentedemapadebits.Unconjuntodecaracteresdemapadebitstambinsedenominaenocasionesfuentersterofuentedigitalizada.Otroesquemamsflexibleconsisteendescribirlasformasdeloscaracteresutilizandoseccionesdelnearectasydecurvas,comoporejemploenPostScript,enestecaso,elconjuntodecaracteressedenominafuentedecontornoofuentedetrazos.Lafigurailustralosdosmtodosparalarepresentacindecaracteres.CuandoseaplicaelpatrndelaparteizquierdadelaFiguraaunreadelbferdeimagen,losbitsconvalor1designanquposicionesdepxelhayquemostrarenuncolorespecificado.ParavisualizarlaformadelcarcterdelapartedeladerechadelaFigura,elinteriordelcontornodecarctersetratacomounreaderelleno.
-
pg.40
Lasfuentesdemapadebitssonlasmssimplesdedefinirydevisualizar:bastaconasignarlascuadrculasdecaracteresaunaposicindentrodelbferdeimagen.Sinembargo,engeneral,lasfuentesdemapadebitsrequierenmsespaciodealmacenamiento,yaqueesnecesarioguardarcadavariante(tamaoyformato)dentrodeunacachdefuentes.Sepuedengenerardiferentestamaosyotrasvariaciones,comoporejemplonegritaeitlicaapartirdeunconjuntodefuentesenmapadebits,perolosresultadosqueseobtienennosuelenserbuenos.Podemosincrementarodecrementareltamaodelmapadebitsdeuncarctersolamenteenmltiplosenterosdeltamaodelpxel.Siqueremosdoblareltamaodeuncarcter,tenemosquedoblarelnmerodepxelesdelmapadebits,conloquelosbordesdelcarctertendrnunaaparienciaescalonada.Porcontrasteconlasfuentesdemapadebits,lasfuentesdecontornopuedenincrementarsedetamaosindistorsionarlaformadeloscaracteres.Adems,estasfuentesrequierenmenosespaciodealmacenamiento,porquenohacefaltaunacachdefuenteseparadaparacadaunadelasvariantesdeltipodecaracteres.Podemosgenerarcaracteresennegrita,eitlicaodediferentestamaosmanipulandolasdefinicionesdelascurvasqueespecificanelcontornodeloscaracteres.Peroobviamentehacefaltamstiempoparaprocesarlasfuentesdecontorno,yaqueesnecesariodigitalizarloscaracteresparaalmacenarlosenelbferdeimagen.Hayunadiversidaddeposiblesfuncionesparavisualizarcaracteres.Algunospaquetesgrficosproporcionanunafuncinqueaceptacualquiercadenadecaracteresyunaindicacindeculdebeserlaposicindeiniciodelacadenadentrodelbferdeimagen.Otrotipodefuncionessonaquellasquemuestranunnicocarcterenunaomsposicionesseleccionadas.Puestoqueestarutinadecaracteresresultamuytilparamostrarcaracteresenunaimagen,porejemplo,deunareddecomputadorasoalahorade
-
pg.41
mostrarunagrficaconlospuntoscorrespondientesaunconjuntodedatosdiscretos,elcarctermostradoporestarutinasedenominaenocasionessmbolomarcadoropolimarcador,poranalogaconlaprimitivadepolilnea.Ademsdeloscaracteresestndar,otrasformasgeomtricasespecialescomolospuntos,loscrculosylascrucessuelenestardisponiblescomosmbolosmarcadores.LaFiguramuestraunagrficadeunconjuntodedatosdiscretodondeseutilizaunasteriscocomosmbolomarcador.
Lasdescripcionesgeomtricasdeloscaracteresseproporcionanencoordenadasuniversales,aligualqueconlasotrasprimitivas,yestainformacinsehacecorresponderconlascoordenadasdepantallamediantelastransformacionesdevisualizacin.Uncarcterdemapadebitssedescribemedianteunacuadrcularectangulardevaloresbinariosyunaposicindereferenciaparalacuadrcula.Estaposicindereferenciaseasignaentoncesaunaubicacinespecificadadentrodelbferdeimagen.Uncarcterdecontornoestdefinidoporunconjuntodepuntosquehayqueconectarmedianteunaseriedesegmentoscurvosyrectos,juntoconunaposicindereferenciaquehayquehacercorresponderconunaubicacindeterminadadelbferdeimagen.Laposicindereferenciapuedeespecificarseparaunnicocarcterdecontornooparaunacadenadecaracteres.Engeneral,lasrutinasdecaracterespermitengenerarimgenesconcaracterestantobidimensionalescomotridimensionales.2.7AtributosdepuntosBsicamente,podemosestablecerdosatributosparalospuntos:elcoloryeltamao.Enunsistemadeestados,elcoloryeltamaomostradosdeunpuntoestndeterminadosporlosvaloresactualesalmacenadosenlalistadeatributos.LascomponentesdecolorseestablecenconvaloresRGBoconunndicedeunatabladecolor.Enunsistemadegrficosdigitalizados,eltamaodelpuntoesunmltiplodeltamaodelpxel,porloqueunpuntograndesemuestracomounbloquecuadradodepxeles.
-
pg.42
2.8AtributosdelneasUnsegmentodelnearectasepuedemostrarcontresatributosbsicos:elcolor,elgrosoryelestilo.Elcolordelalneaseestablecehabitualmenteconlamismafuncindetodaslasprimitivasgrficas,mientrasqueelgrosoryelestilodelalneaseseleccionanconfuncionesindependientesparalaslneas.Adicionalmente,laslneassepuedengenerarconotrosefectos,talescomolostrazosdeunlapiceroyunabrocha.ElgrosordelaslneasLaimplementacindelasopcionesdelgrosordelaslneasdependedelascapacidadesdeldispositivodesalida.Unalneagruesasepodramostrarenunmonitordevdeocomolneasadyacentesparalelas,mientrasqueuntrazadordeplumillaspodraprecisarelcambiodelaplumillaparadibujarunalneagruesa.Enimplementacionesdegrficosdigitalizados,unalneadegrosorestndarsegeneraconunnicopxelencadaposicinmuestreada,comoenelalgoritmodeBresenham.Laslneasmsgruesassevisualizancomomltiplosenterospositivosdelalneaestndarmedianteeldibujodepxelesadicionalesalolargodelneasparalelasadyacentes.Siunalneatieneunapendientemenoroigualque1.0,podemosmodificarlasubrutinadedibujodelneasparamostrarlneasgruesasmedianteeldibujodepxelesdeextensinencadacolumna(posicinx)alolargodelalnea.Elnmerodepxelesquesevanamostrarencadacolumnasedefinecomoelvalorenterodelgrosordelalnea.EnlaFigurasemuestraunalneadegrosordoblemediantelageneracindeunalneaparalelaencimadelatrayectoriadelalneaoriginal.
Encadaposicinxmuestreada,calculamoslacoordenadacorrespondienteyysedibujanpxelesenlascoordenadasdepantalla(x,y)y(x,y+1).Podramosmostrarlneasconungrosoriguala3omayor,dibujandoalternativamentepxelesporencimaypordebajodelalneadegrosorsimple.Enunalneadependientemayorque1.0,podemosmostrarlneasgruesasempleandoextensioneshorizontales,aadiendopxelesalternativamentealaderechayalaizquierdadelatrayectoriadelalnea.EsteplanteamientosemuestraenlasiguienteFigura,dondeun
-
pg.43
segmentodelneaconungrosorde4sedibujaempleandomltiplespxelestransversalesacadalneadebarrido.
Deformasimilar,unalneagruesaconunapendientemenoroigualque1.0sepuedemostrarempleandoextensionesverticalesdepxeles.Podemosimplementaresteprocedimientomediantelacomparacindelasmagnitudesdelasseparacioneshorizontalyvertical(y)delospuntosextremosdelalnea.Si,lospxelesserepitenalolargodelascolumnas.Encasocontrario,mltiplespxelessedibujandeformatransversalalasfilas.Aunquelaslneasgruesassegeneranfcilmentemedianteeldibujodeextensionesdepxeleshorizontalesoverticales,elgrosorvisualizadodeunalnea(medidoperpendicularmentealatrayectoriadelalnea)dependedesupendiente.Unalneade45sevisualizarmsfinadebidoalfactorcomparadaconunalneahorizontaloverticaldibujadaconlamismalongituddeextensionesdepxeles.Otroproblemaconlaimplementacindelasopcionesdegrosorutilizandoextensionesdepxeleshorizontalesyverticalesesqueelmtodoproducelneascuyosextremossonhorizontalesoverticalesindependientementedelapendientedelalnea.Esteefectoesmsapreciableconlneasmuygruesas.Podemosajustarlaformadelasterminacionesdelalneaparadarlesunamejoraparienciaaadiendoextremosdelnea(comoseapreciaenlaFigura).
-
pg.44
Untipodeextremodelneaeselextremoabrupto,quepresentaterminacionescuadradasquesonperpendicularesalatrayectoriadelalnea.Silalneatieneunapendientem,lasterminacionescuadradasdelalneagruesatienenunapendiente.Cadaunadelaslneasparalelascomponentessevisualizaentoncesentrelasdoslneasperpendicularesacadaterminacindelatrayectoriadelalnea.Otrotipodeextremodelneaeselredondeadoqueseobtieneaadiendounsemicrculorellenoacadaextremoabrupto.Losarcoscircularestienensucentroenlazonamediadelalneagruesayundimetroigualalgrosordelalnea.Untercertipodeextremodelneaeselcuadrado.Enestecaso,simplementeextendemoslalneayaadimosextremosabruptosqueseposicionanenlamitaddelgrosordelalneamsalldelasterminaciones.Entreotrosmtodosparaproducirlneasgruesassepuedenincluirlavisualizacindelalneacomounrectngulorellenoolageneracindelalneaconunpatrndeplumillaobrochadeterminado.Paraobtenerunarepresentacinconformaderectnguloparaellmitedelalnea,calculamoslaposicindelosvrticesdelrectnguloalolargodelasperpendicularesalatrayectoriadelalnea,paraquelascoordenadasdelosvrticesdelrectngulosedesplacendelasposicionesoriginalesdelosextremosdelalnealamitaddelgrosordelamisma.LalnearectangulartieneentonceselaspectodelaFiguradeextremosdelneaubicadoalaizquierda.Podramosaadirextremosredondeadosa!rectngulorelleno,opodemosextendersulongitudparamostrarextremoscuadrados.Lageneracindepolilneasgruesasrequierealgunasconsideracionesadicionales.Porlogeneral,losmtodosquehemosconsideradoparamostrarsegmentosdelneanoproducirnseriesdesegmentosdelneaconectadossuavemente.Larepresentacindepolilneasgruesasempleandoextensionesdepxeleshorizontalesyverticales,porejemplo,producenhuecosenlospxelesenloslmitesentrelossegmentosdelneacondiferentespendientesdondehayuncambiodeextensionesdepxeleshorizontalesaextensionesverticales.Podemosgenerarpolilneasgruesasqueestnunidassuavementeacostadeunprocesamientoadicionalenlosextremosdelossegmentos.LaFigurasiguientemuestratresposiblesmtodosparaunirsuavementedossegmentosdelnea.
Unauninenpuntaseconsigueextendiendolasfronterasdecadaunodelosdossegmentosdelneahastaqueseencuentran.Unauninredondeadaseproducetapandola
-
pg.45
conexinentrelosdossegmentosconunafronteracircularcuyodimetroesigualalgrosordelalnea.Yunauninbiseladasegeneravisualizandolossegmentosdelneaconextremosabruptosyrellenandoelhuecotriangulardondeloselementosseencuentran.Sielnguloentrelosdossegmentosdelneaconectadosesmuypequeo,unauninenpuntapuedegenerarunalargapaquedistorsionalaaparienciadelapolilnea.Unpaquetegrficopuedeevitaresteefectocambiandodeuninenpuntaauninbiseladacuando,porejemplo,elnguloentredossegmentoscualesquieraconsecutivosespequeo.
EstilodelaslneasEntrelasposibleseleccionesdelatributodeestilodelneaseincluyenlaslneascontinuas,laslneasdiscontinuasylaslneaspunteadas.Modificamoselalgoritmodedibujodelneasparagenerartaleslneasmedianteelcambiodelalongitudydelespaciadodelasseccionescontinuasmostradasalolargodelatrayectoriadelalnea.Enmuchospaquetesgrficos,podemosseleccionartantolalongituddelostrazosdiscontinuoscomoelespacioentredichostrazos.Losalgoritmosdelneasensistemasdigitalizadosmuestranlosatributosdeestilodelaslneasdibujandoextensionesdepxeles.Enpatronesdiscontinuos,depuntosoambasalavez.elprocedimientodedibujodelneasproducecomosalidaseccionescontinuasdepxelesalolargodelatrayectoriadelalnea,saltandounnmerodepxelesentrelasextensionescontinuas.Lacantidaddepxelesutilizadaenlalongituddelasextensionesyelespacioentrelasmismassepuedeespecificarmedianteunamscaradepxel,lacualesunpatrndedgitosbinariosqueindicaquposicionessehandedibujaralolargodelatrayectoriadelalnea.Lamscaralineal11111000,porejemplo,sepodrautilizarparamostrarunalneadiscontinuaconunalongituddetrazodecincopxelesyunespacioentretrazosdetrespxeles.Alasposicionesdepxelcorrespondientesalbit1selesasignaelcoloractual,yalasposicionesdepxelcorrespondientesalbit0selesasignaelcolordefondo.Eldibujodetrazosconunnmerofijodepxelesprovocatrazosdelongituddesigualsegnlasdiferentesorientacionesdelalnea,comosemuestraenlaFigurasiguiente.
-
pg.46
Ambostrazossedibujanconcuatropxelesperoeltrazodiagonalesmslargoenunfactorde.Endibujosenlosquesenecesitaprecisin,laslongitudesdelostrazosdeberanpermaneceraproximadamenteconstantesparacualquierorientacindelalnea.Paraconseguiresto,podramosajustarlacantidaddepxelesdelasextensionescontinuasyelespacioentredichasextensionesdeacuerdoconlapendientedelalnea.EnlaFiguraanteriorpodemosvisualizartrazosdelongitudaproximadamenteigualmediantelareduccindeltrazodiagonalatrespxeles.Otromtodoparamantenerlalongituddeltrazoconsisteentratarlostrazoscomosegmentosindividualesdelnea.Lascoordenadasdelospuntosextremosdecadatrazoselocalizanysepasanalasubrutinadelnea,lacualentoncescalculalasposicionesdelospxelesalolargodelatrayectoriadeltrazo.OpcionesdeplumillaybrochaEnalgunospaquetes,particularmenteenlossistemasdedibujoypintura,podemosseleccionardirectamentediferentesestilosdeplumillaybrocha.Entrelasopcionesdeestacategoraseincluyenlaforma,eltamaoyelpatrndelaplumillaobrocha.AlgunosejemplosdeformasdeplumillaybrochasemuestranenlaFigurasiguiente.
-
pg.47
Estaformasepuedealmacenarenunamscaradepxelqueidentificalamatrizdeposicionesdepxelquesedebencambiaralolargodelatrayectoriadelalnea.Porejemplo,unaplumillarectangularsepodraimplementarconlamscaraquesemuestraenlaFigura.
Medianteelmovimientodelcentro(ounaesquina)delamscaraalolargodelatrayectoriadelalnea,comoenlasiguienteFigura.
-
pg.48
Paraevitarcambiarlospxelesmsdeunavezenelbferdeimagen,podemossimplementeacumularlasextensioneshorizontalesgeneradasencadaposicindelamscaraymantenerlapistadelcomienzoyelfinaldelasposicionesxdelasextensionesalolargodecadalneadebarrido.Laslneasgeneradasconplumilla(obrocha)sepuedenvisualizarconvariosgrosoresmedianteelcambiodeltamaodelamscara.Porejemplo,lalneageneradaconunaplumillarectangulardelaFiguraanteriorsepodraestrecharconunamscararectangulardetamao2por2oensancharconunamscaradetamao4por4.Tambin,laslneassepuedenrepresentarconpatronescreadosmediantelasuperposicindevariospatronesenunamscaradeplumillaobrocha.2.9AtributosdecurvasLosparmetrosdelosatributosdelascurvassonlosmismosquelosdelossegmentosdelnearecta.Podemosmostrarcurvasvariandoloscolores,losgrosores,utilizandopatronesdepuntoyguin,yopcionesdisponiblesdeplumillasobrochas.Losmtodosparalaadaptacindelosalgoritmosdedibujodecurvasparaacomodarlosalasseleccionesdelosatributossonsimilaresaaquellosempleadosparaeldibujodelneas.Lascurvasdigitalizadasdevariosgrosoressepuedenrepresentarempleandoelmtododelasextensionesverticalesyhorizontalesdepxeles.Dondelamagnituddelapendientedelacurvaseamenoroigualque1.0,dibujaremosextensionesverticalesdondelamagnituddelapendienteseamayorque1.0,dibujaremosextensioneshorizontales.LaFigurasiguientemuestraestemtodoparalarepresentacindeunarcocirculardegrosor4enelprimercuadrante.
-
pg.49
Utilizandolasimetradelcrculo,podemosgenerarunatrayectoriacircularconextensionesverticaleseneloctantequevadesdex=0ax=y,ydespusreflejarlasposicionesdelospxelessobrelalneay=xparaobtenerelreflejodelacurvamostrada.Lasseccionescircularesdeotroscuadrantesseobtienenmediantereflexindelasposicionesdelospxelesdelprimercuadrantesegnlosejesdecoordenadas.Elgrosordelascurvasrepresentadasconestemtodoesdenuevofuncindelapendientedelacurva.Loscrculos,elipsesyotrascurvasaparecernmsfinasdondelapendientetengaunamagnitudde1.Otromtodopararepresentarcurvasgruesasconsisteenrellenarelreaentredostrayectoriasdecurvaparalelas,cuyadistanciadeseparacinseaigualalgrosordeseado.Podramoshacerestoempleandolatrayectoriadelacurvaespecificadacomounafronterayestablecerlasegundafronteradentroofueradelatrayectoriadelacurvaoriginal.Estatcnica,sinembargo,cambialatrayectoriadelacurvaoriginalhaciadentroohaciaafuera,dependiendodeladireccinqueelijamosparalasegundafrontera.Podemosmantenerlaposicindelacurvaoriginalestableciendodoscurvasfronteraaunadistanciademediogrosoracadaladodelatrayectoriadelacurvaespecificada.UnejemplodeestatcnicasemuestraenlaFigurasiguienteparaunsegmentocircularconradio16ygrosor4.
-
pg.50
Losarcoslmiteseestablecenentoncesconunadistanciadeseparacinde2acadaladodelradiodevalor16.Paramantenerlasdimensionesadecuadasdelarcocircular,podemosestablecerelradioparalosarcoslmiteconcntricosenr=14yr=17.Aunqueestemtodoesprecisoparalageneracindecrculosgruesos,proporcionaengeneral,slounaaproximacinalreaverdaderadeotrascurvasgruesas.Porejemplo,loslmitesinternosyexternosdeunaelipsegruesageneradaconestemtodonotienenelmismofoco.
CAPTULOIII:TRANSFORMACIONESGEOMTRICASEnesteapartadoveremoslasoperacionesdetransformacinquesepuedenaplicaraobjetosparareubicarlosodarlesuntamaodiferente.Estasoperacionestambinsonusadasenlavisualizacinderutinasqueconviertenunadescripcindeunaescenadecoordenadasuniversalesenundespliegueparaundispositivodesalida.Adems,sonusadosenvariedaddeotrasaplicaciones,talescomodiseodeayudayanimacinporcomputador.Lasoperacionesqueseaplicanadescripcionesgeomtricasdeunobjetoparacambiarsuposicin,orientacinotamaosellamantransformacionesgeomtricas.
3.1.TransformacionesgeomtricasbidimensionalesbsicasLasfuncionesdetransformacionesgeomtricasquesepuedenencontrarentodoslospaquetesgrficos,sonaquellasqueseusanparalatraslacin,larotacinyelcambiodeescala.Otrasrutinasdetransformacionestiles,queavecesseincluyenenlospaquetes,sonlasoperacionesdereflexineinclinacin.Traslacionesbidimensionales
-
pg.51
Serealizaunatraslacindeunpuntosencillodecoordenadas,mediantelainclusindecompensacionesensuspropiascoordenadas,paragenerarunanuevaposicindecoordenadas.Enefecto,seestmoviendolaposicindelpuntooriginalalolargodeunatrayectoriaenlnearectahaciasunuevalocalizacin.Demodosimilar,unatraslacinesaplicableaunobjetoquesedefineconmltiplesposicionesdecoordenadas,talescomocuadrilteros,mediantelarecolocacindetodaslasposicionesdesuscoordenadas,usandoelmismodesplazamientoalolargodetrayectoriasparalelas.As,elobjetocompletosemuestraenlanuevalocalizacin.Paratrasladarunaposicinbidimensional,aadimosdistanciasdetraslacinyalascoordenadasoriginalesparaobtenerlanuevaposicindecoordenadascomosemuestraacontinuacin.
PodemosexpresarlasEcuacionesdetraslacincomounanicaecuacindeunamatriz,usandolossiguientesvectorescolumnapararepresentarposicionesdecoordenadasyelvectordetraslacin.
Estonospermiteescribirlasecuacionesdetraslacinbidimensionalesenformadematriz.
Latraslacinesuntipodetransformacindeslidorgidoquemueveobjetossindeformarlos.Estoes,cadapuntodeunobjetoestrasladadoenlamismamedida.Unsegmentoenlnearectaestrasladadomediantelaaplicacindeunaecuacindetransformacinacadaunodelospuntosfinalesdelalneayredibujandolalneaentrelosdosnuevospuntosfinales.Unpolgonosetrasladadeformasimilar.Seaadeunvectordetraslacinalaposicindelascoordenadasparacadavrticeydespusseregeneraelpolgonousandounnuevoconjuntodecoordenadasdevrtices.
-
pg.52
*
RotacionesbidimensionalesSegeneraunatransformacinderotacindeunobjetomediantelaespecificacindeunejederotacinyunnguloderotacin.Todoslospuntosdelobjetosonentoncestransformadosalanuevaposicin,mediantelarotacindepuntosconelnguloespecificadosobreelejederotacin.Unarotacinbidimensionaldeunobjetoseobtienemediantelarecolocacindelobjetoalolargodeunatrayectoriacircularsobreelplanoxy.Enestecaso,seestrotandoelobjetosobreunejederotacinqueesperpendicularalplano(paraleloalejedecoordenadasz).Losparmetrosparalarotacinbidimensionalsonelnguloderotacin,yunaposicinllamadapuntoderotacin(opuntodepivote)sobreloscualeselobjetovaaserrotado.Elpuntodepivoteeslaposicindeinterseccinentreelejedecoordenadasyelplanoxy.Unvalorpositivoparaelngulodefineunarotacinensentidocontrarioalasagujasdelrelojsobreelpuntodepivote,yunvalornegativorotaobjetosenelsentidodelasagujasdelreloj.
Parasimplificarlaexplicacindelmtodobsico,primerohayquedeterminarlasecuacionesdetransformacinparalarotacindeunpuntodeposicinP,cuandoelpunto
-
pg.53
depivoteestenelorigendecoordenadas.LarelacinentreelangularylascoordenadasdelasposicionesoriginalesytransformadassemuestraenlasiguienteFigura.
Enestafigura,resladistanciaconstantedelpuntorespectodelorigen,elnguloeslaposicinangularoriginaldelpuntodesdelahorizontal,yeselnguloderotacin.Usandoidentidadestrigonomtricasestndar,podemosexpresarlascoordenadastransformadasenfuncindelosngulosycomo:
Conlasrepresentacionesdelvectorcolumna,paraposicionesdecoordenadas,podemosescribirlasecuacionesderotacinenformadematrizdondelamatrizderotacines:
LarotacindeunpuntosobreunaposicindepivotearbitrariaseilustraenlaFigura.Usandolasrelacionestrigonomtricasindicadasporlosdostringulosrectngulosdeestafigura,sepuedengeneralizarlasEcuacionesbsicasderotacinparaobtenerlasecuacionesdetransformacinparalarotacindeunpuntosobrecualquierposicinderotacinespecfica:
Estasecuacionesderotacingeneralesdifierendelasecuacionesdelarotacinsobreelorigen,porlainclusindetrminosaditivos,ascomofactoresmultiplicativosenlosvaloresdecoordenadas.Laexpresindelamatrizpuedemodificarseparaincluirlascoordenadaspivoteaadiendolamatrizdevectorcolumna,cuyoselementoscontienenlostrminosaditivos(traslacionales)delasEcuaciones.Aligualqueconlastraslaciones,lasrotacionessontransformacionesdeslidorgidoquemuevenobjetossindeformarlos.Cadapuntodeunobjetoserotaunmismongulo.Unsegmentoenlnearectaserotamediantelaaplicacindelasecuacionesderotacinacadaunodesuspuntosfinaleso
-
pg.54
extremosyredibujandoluegolalneaentrelosnuevosextremos.Unpolgonoserotadesplazandocadaunodesusvrticesusandoelnguloderotacinespecificadoydespusregenerandoelpolgonousandolosnuevosvrtices.Rotamosunacurvareposicionandolospuntosdedefinicinparalacurvayredibujandodespus.Uncrculoounaelipse,porejemplo,puedenrotarsesobreunpuntodepivotenocentrado,moviendolaposicindelcentroatravsdelarcoquesustentaelnguloderotacinespecificado.Ypodemosrotarunaelipsesobresupropiocentrodecoordenadas,sencillamenterotandoelejemayoryelejemenor.CambiodeescalabidimensionalParaalterareltamaodeunobjeto,aplicamostransformacionesdeescala.Unasimpleoperacindecambiodeescalabidimensionalsellevaacabomultiplicandolasposicionesdelosobjetosporlosfactoresdeescalayparaproducirlascoordenadastransformadas.
ElfactordeescalacambialaescaladeunobjetoenladireccinX,mientrasquehaceelcambiodeescalaenladireccinY.Lasecuacionesbsicasdelcambiodeescalaendosdimensionespuedentambinescribirseenlaformadelamatrizsiguiente.
dondeSeslamatriz2por2decambiodeescala.Cualquiervalorpositivopuedeserasignadoalosvaloresdeescalay.Valoresinferioresa1reduceneltamaodelosobjetosvaloressuperioresa1producenalargamientos.Especificandounvalorde1tantoparacomoparasedejaeltamaodelobjetoinalterado.Cuandoayselesasignaelmismovalor,seproduceuncambiodeescalauniformequemantienelasproporcionesrelativasdelobjeto.Valoresdesigualesdeyresultanenuncambiodeescaladiferentequeesamenudousadoenaplicacionesdediseo,dondelosdibujossonconstruidosdesdeunaspocasformasbsicasquepuedenajustarsemedianteescalasytransformacionesposicionales.Enalgunossistemas,losvaloresnegativostambinpuedenespecificarsemedianteparmetrosdeescala.Ellonosloledaunnuevotamaoalobjeto,ademsloreflejasobreunoomsejesdecoordenadas.Podemoscontrolarlalocalizacindeunobjetocambiadodeescalaeligiendounaposicin,llamadapuntofijo,quedebepermanecersincambiosdespusdelatransformacindeescala.Lascoordenadasparaelpuntofijo,sonamenudoelegidasdelaposicindealgnobjeto,talcomosucentroide,aunquepuedeelegirsecualquierotraposicinespacial.Alosobjetosselesdaahoraotrotamaomedianteelcambiodeescaladelasdistanciasentrelospuntosdelosobjetosyelpuntofijo.Paralaposicindecoordenadaslascoordenadasdeescalasecalculanapartirdelassiguientesrelaciones.
-
pg.55
Incluirlascoordenadasparaunpuntofijoenlasecuacionesdeescalaessimilaraincluircoordenadasparaunpuntodepivoteenecuacionesderotacin.LospolgonoscambiandeescalamediantelaaplicacindelasEcuacionesdecambiodeescalaacadavrtice,regenerandodespuselpolgonousandolosvrticestransformados.Paraotrosobjetos,aplicamoslasecuacionesdetransformacindeescalaalosparmetrosquedefinenelobjeto.Paracambiareltamaodeuncrculo,podemosreducirsuradioycalcularlasnuevasposicionesdelascoordenadasdelcontornodelacircunferencia.Yparacambiareltamaodeunaelipse,aplicamoselescaladodelosparmetrossobresusejesparaluegotrazarlanuevaposicindelaelipsesobresucentrodecoordenadas.3.2.RepresentacionesdematrizycoordenadashomogneasMuchasaplicacionesgrficasimplicansecuenciasdetransformacionesgeomtricas.Unaanimacindeberarequerirqueunobjetofuesetrasladadoyrotadotrascadaincrementodemovimiento.Endiseoyaplicacionesdeconstruccindedibujos,sellevanacabotraslaciones,rotacionesycambiosdeescalaparaacoplarloscomponentesdeldibujodentrodesuspropiasposiciones.Ylavisualizacindelastransformacionesimplicansecuenciasdetraslacionesyrotacionesparallevamosdesdelaescenaoriginalespecificadaalavisualizacinenundispositivodesalida.Aqu,consideramoscmolasrepresentacionesdematricesdiscutidasenlaseccinanteriorpuedenacumularse.detalformaquelassecuenciasdetransformacionespuedanserprocesadaseficientemente.Hemosvistoanteriormentequecadaunadelastrestransformacionesbidimensionalesbsicas(traslacin,rotacinycambiodeescala)puedenexpresarseenformadematrizgeneral:
conposicionesdecoordenadasPyP'representadosenvectorescolumnas.Lamatrizesunamatrizde2por2quecontienefactoresmultiplicativos,y,esunamatrizcolumnade2elementosquecontienelostrminostraslacionales.Paralatraslacin,eslamatrizidentidad.Paralarotacinoelcambiodeescala,,contienelostrminostraslacionalesasociadosconelpuntodepivoteoconelpuntofijodeescalado.Paraproducirunasecuenciadetransformacionesconesasecuaciones,comoporejemplo,uncambiodeescalaseguidodeunarotacinyluegounatraslacin,podemoscalcularlascoordenadastransformadashaciendounacosacadavez.Primero,secambialaescaladelaposicindelascoordenadas,luegodichascoordenadassegirany,finalmente,lascoordenadasrotadassontrasladadas.Sinembargo,unaformamseficientedehacerlo,escombinartransformacionesdetalsuertequelaposicinfinaldelascoordenadasseobtengadirectamenteapartirdelascoordenadasiniciales,sincalcularvaloresdecoordenadas
-
pg.56
intermedios.Podemoshaceresto,reformulandolaEcuacinanteriorparaeliminarlaoperacindesumadematrices.CoordenadashomogneasLostrminosmultiplicativosytraslacionalesparaunatransformacingeomtricabidimensionalpuedensercombinadosdentrodeunamatrizsencilla,siexpandimoslarepresentacinamatricesde3por3.Enesecaso,podemosusarlaterceracolumnadelamatrizdetransformacinparalostrminostraslacionales,ytodaslasecuacionesdetransformacinpuedenexpresarsecomomultiplicacindematrices.Peroparapoderhaceresto,necesitamosademsexpandirlarepresentacinmatricialparaposicionesdecoordenadasbidimensionalesaunamatrizcolumnade3elementos.Unatcnicaestndarparalograrestoconsisteenexpandircadarepresentacindeposicincoordenadabidimensional(x,y)enrepresentacionesde3elementosllamadascoordenadashomogneas,dondeelparmetrohomogneohesunvalordistintodecerotalque:yPortanto,unarepresentacindecoordenadashomogneasbidimensionales,puedeescribirsetambincomo.Paratransformacionesgeomtricas,podemoselegirelparmetrohomogneohparaqueseacualquiervalordistintodecero.As,hayunnmeroinfinitoderepresentacioneshomogneasequivalentesparacadapuntodecoordenadas(x,y).Unaeleccinacertadaesfijarh=1.Cadaposicinbidimensionalserepresentaconcoordenadashomogneas(x,y,1).Senecesitanotrosvaloresparaelparmetroh,porejemploenformulacionesdematricesparamostrartransformacionestridimensionales.Eltrminocoordenadashomogneasseusaenmatemticasparareferirsealefectodeestarepresentacinencoordenadascartesianas.Cuandounpuntocartesiano(x,y)seconviertearepresentacinhomognealasecuacionesquecontienenxeytalescomof(x,y)=0,seconviertenenecuacioneshomogneasenlostresparmetros.Estosignificaprecisamente,quesicadaunodelostresparmetrosessustituidoporcualquiervalor,vveces,dichovalorvpuedeserdespejadodelaecuacin.Expresarposicionesencoordenadashomogneasnospermiterepresentartodaslasecuacionesdetransformacionesgeomtricascomomultiplicacindematrices,queeselmtodoestndarusadoenlossistemasgrficos.Lasposicionesdecoordenadasbidimensionalesserepresentanconvectorescolumnadetreselementos,ylasoperacionesdetransformacinbidimensionalesserepresentancomomatricesde3por3.MatrizdetraslacinbidimensionalUsandolaaproximacindecoordenadashomogneas,podemosrepresentarlasecuacionesparaunatraslacinbidimensionaldeunaposicindecoordenadasusandolasiguientematrizdemultiplicacin.
-
pg.57
Estaoperacindetraslacinpuedeescribirseensuformaabreviada:
MatrizderotacinbidimensionalDemanerasimilar,lasecuacionesdetransformacinderotacinbidimensionalsobreelorigendecoordenadaspuedenexpresarseenformadematriz,
Enalgunasbibliotecasgrficas,unafuncinderotacinbidimensionalgeneraslorotacionessobreelejedecoordenadas.Unarotacinsobrecualquierotropuntodepivotedeberepresentarsecomounasecuenciadeoperacionesdetransformacin.Unaalternativaenpaquetesgrficosesofrecerparmetrosadicionalesenlarutinaderotacinparalascoordenadasdelpuntodepivote.Unarutinaderotacinqueincluyeparmetrosdelpuntodepivote,luegoestableceunamatrizgeneralderotacin,sinlanecesidaddeinvocarunasucesindefuncionesdetransformacin.MatrizdecambiodeescalabidimensionalFinalmente,unatransformacindecambiodeescalarelativaalorigendecoordenadaspuedeahoraexpresarsecomolamatrizdemultiplicacin:
Algunasbibliotecasofrecenunafuncindecambiodeescalaquepuedegenerarslouncambiodeescalaconrespectoalorigendecoordenadas,comoenlaEcuacin5.21.Enestecaso,unatransformacindecambiodeescalarelativaaotraposicindereferenciaesllevadaacabocomounasucesindeoperacionesdetransformacin.Sinembargo,otrossistemassincluyenunarutinadecambiodeescalageneralquepuedeconstruirmatriceshomogneaspararealizarcambiosdeescalaconrespectoapuntosfijosdesignados.TransformacionesinversasParalatraslacin,obtenemoslamatrizinversamediantelanegacindelasdistanciasdetraslacin.As,sitenemosdistanciasdetraslacinbidimensionalesy,lamatrizdetraslacininversaes:
-
pg.58
Estoproduceunatraslacinenladireccinopuesta,yelproductodelamatrizdetraslacinysuinversaproducenlamatrizidentidad.Unarotacininversaseobtienesustituyendoelnguloderotacinporsunegativo.Porejemplo,unarotacinbidimensionalatravsdelngulosobreelorigendecoordenadas,tienelamatrizdetransformacin:
Losvaloresnegativosparalosngulosderotacingeneranrotacionesenelsentidodelasagujasdelreloj,as,lamatrizidentidadseproducecuandoalgunamatrizderotacinsemultiplicaporsuinversa.Puestoqueporelcambiodesignodelnguloderotacinsloseveafectadalafuncinseno,lamatrizinversapuedeobtenersetambinintercambiandofilasporcolumnas.Formamoslamatrizinversaparacualquiertransformacindeescalasustituyendolosparmetrosdeescalaporsusrecprocos.Paraescalasbidimensionalesconparmetrosyaplicadosrespectoalorigendecoordenadas,lamatrizdetransformacininversaes:
Lamatrizinversageneraunatransformacindeescalaopuesta,detalformaquelamultiplicacindecualquiermatrizdeescalaporsuinversaproducelamatrizidentidad.3.3.TransformacionesCompuestasbidimensionalesUsandolarepresentacindematrices,podemosestablecerunasecuenciadetransformacionescomomatrizdetransformacincompuestacalculandoelproductodelastransformacionesindividuales.Formandoproductosconlasmatricesdetransformacinescomnreferirseaellocomoconcatenacin,ocomposicin,dematrices.Desdeunaposicindecoordenadasrepresentadacomounamatrizcolumnahomognea,debemospremultiplicarlamatrizcolumnaporlasmatrices,representandounasecuenciadetransformaciones.Y,comomuchasposicionesdeunaescenasonnormalmentetransformadasporlamismasecuencia,esmseficienteprimeromultiplicarlatransformacindematricesparaformarunanicamatrizcompuesta.As,siqueremosaplicardostransformacionesalaposicindeunpuntoP,laubicacintransformadasecalcularacomo:
-
pg.59
LaposicindecoordenadassetransformausandolamatrizcompuestaM,mejorqueaplicandolastransformacionesindividualesyluego.
OtrastransformacionesbidimensionalesLastransformacionesbsicastalescomolatraslacin,larotacinyelcambiodeescalasoncomponentesestndaresdelasbibliotecasgrficas.Algunospaquetesofrecenalgunastransformacionesadicionalesquepuedensertilesenciertasaplicaciones.Dosdedichastransformacionessonlareflexinylainclinacin.ReflexinUnatransformacinqueproducelaimagendeunobjetoenunespejosellamareflexin.Paraunareflexinbidimensional,estaimagensegenerarespectoaunejedereflexinrotandoelobjeto180sobredichoejedereflexin.Podemoselegirunejedereflexinenelplano.operpendicularalplano.Cuandoelejedereflexinesunalneaenelplano,latrayectoriadelarotacinesttambinenelplano.Acontinuacinseproporcionanejemplosdealgunasreflexionescomunes.
Lareflexinrespectodelalnea(eleje)selograconlamatrizdetransformacin:
Estatransformacinconservalosvalores,perodalavueltaalasposicionesdecoordenadasdevalores.LaorientacinresultantedeunobjetodespusdehabersidoreflejadosobreelejesemuestraenlaFigurasiguiente.
-
pg.60
Paraimaginarlatrayectoriadelatransformacinderotacinparaestareflexin,podemospensarenelobjetoplanomovindosefueradelplanoygirando180atravsdeunespaciotridimensionalalrededordelejeycolocadodenuevosobreelplanoalotroladodeleje.
Unareflexinsobrelalnea(eleje)vuelcalascoordenadasmientrasquemantienelasmismascoordenadas.Lamatrizparaestatransformacines:
Lafigurasiguienteilustraelcambiodeposicindeunobjetoquehasidoreflejadorespectodelalnea.
Larotacinequivalenteenestecasoes180atravsdelespaciotridimensionalsobreeleje.Damoslavueltatantoalascoordenadascomoalasdeunpunto,mediantelareflexinrelativadeunejequeesperpendicularalplanoyquepasaporelorigendecoordenadas.Estareflexinavecessedenominareflexinrelativaalorigendecoordenadas,yesequivalenteareflejarconrespectoaambosejesdecoordenadas.Lamatrizderepresentacinparaestareflexines:
Lafigurasiguientemuestraunejemplodereflexinrespectodelorigen.Lamatrizdereflexinanterioreslamismaquelamatrizderotacincon.Sencillamenteestamosgirandoelobjetoenelplanomediavueltaalrededordelorigen.
-
pg.61
Lamatrizdereflexinparaelcasoanteriorsepuedegeneralizarseparalareflexindecualquierpuntoenelplanocomosemuestraenlafigurasiguiente.Estareflexineslomismoquelarotacinde180enelplano,alrededordeunpuntodereflexin.
Sielegimoselejedereflexincomolalneadiagonal,lamatrizdereflexines:
Ylafiguramuestraelresultado.
-
pg.62
Podemosobtenerestamatrizconcatenandounasecuenciaderotacionesyreflexionesdematricessobrelosejesdecoordenadas.UnaposiblesecuenciasemuestraenlaFigurasiguiente.
Aqu,primerollevamosacabounarotacinenelsentidodelasagujasdelrelojconrespectoalorigenatravsdeunngulode45,querotalalneaysobreeleje.Acontinuacinrealizamosunareflexinconrespectoaleje.Elpasofinalconsisteengirarlalneadevueltaasuposicinoriginalconunarotacinde45ensentidocontrarioaldelasagujasdelreloj.Otrasecuenciadetransformacionesequivalenteconsisteenreflejarprimeroelobjetosobreelejeyluegorotarloenelsentidodelasagujasdelreloj.
Ejercicioobtenerunamatrizparalareflexinconrespectoalalnea.
Lasreflexionessobrecualquierlneaenelplanopuedenrealizarseconunacombinacindetransformacionestraslacinrotacinreflexin.Engeneral,primerotrasladamoslalneadetalformaquepaseporelorigen.Luegopodemosgirarlalneahaciaunodelosejesdecoordenadasyreflejarlasobredichoeje.Finalmente,reestablecemoslalneaasuposicinoriginalconlastransformacionesinversasderotacinytraslacin.Podemosimplementarreflexionesconrespectoalosejesdecoordenadasoalorigendecoordenadascomotransformacionesdeescalaconfactoresdeescalanegativos.Adems,
-
pg.63
loselementosdelamatrizdereflexinpuedendefinirseconvaloresdistintosde1.Unparmetrodereflexindeunamagnitudsuperiora1cambialaimagendelespejoporunpuntomsalejadodelejedereflexin,yunparmetrocuyamagnitudesinferiora1traelaimagendelespejoaunpuntomscercanoalejedereflexin.As,unobjetoreflejadopuedetambinagrandarse,reducirseodistorsionarse.
InclinarUnatransformacinquedistorsionalaformadeunobjetodetalmaneraquelaformaobtenidaaparececomosielobjetoestuvieracompuestoporcapasinternasquesehubieranobtenidoresbalandounassobreotrasesloquesedenominainclinacin.Dostransformacionescomunesparaproducirunainclinacinsonaquellasquedesplazanlosvaloresdelascoordenadasylasquedesplazanlosvaloresde.Unainclinacinenladireccinrespectoalejeseproduceconlamatrizdetransformacin:
Lacualtransformalaposicindecoordenadascomosigue:
Cualquiernmerorealpuedeasignarsealosparmetrosdeinclinacin.Entonces,unaposicindecoordenadassecambiahorizontalmenteporunacantidadproporcionalasudistanciaperpendicular(valor)desdeeleje.
Ejemplo,Establecerelparmetroporejemploconelvalor2,mostrarentonceselresultadodeinclinarelrecuadrodevrtices(0,0)(1,0)(1,1)(0,1).
Losvaloresnegativosparacambianlasposicionesdelascoordenadashacialaizquierda.
Transformacionesentresistemasdecoordenadasbidimensionales
-
pg.64
Lasaplicacionesdegrficosporcomputadoraimplicantransformacionesdecoordenadasdeunmarcodereferenciaaotrodurantevariasetapasdelprocesamientodelaescena.Lasrutinasdevisualizacintransformandescripcionesdeobjetosdelascoordenadasuniversalesaunascoordenadasdedispositivodesalida.Paraaplicacionesdemodeladoydiseo,losobjetosindividualessedefinentpicamenteensuspropiasreferenciascartesianaslocales.Estasdescripcionesdecoordenadaslocalesdeben,portanto,transformarseenposicionesyorientacionesdentrodelsistemadecoordenadastotaldelaescena.Unprogramaparafacilitarlagestindeladisposicindeoficinas,porejemplo,tienedescripcionesdecoordenadasindividualesparasillasymesasyotrosmueblesquepuedencolocarseenelplanodelaplanta,conmltiplescopiasdesillasyotroselementosendiferentesposiciones.Adems,lasescenasavecessedescribenenmarcosdereferencianocartesianosqueaprovechanlassimetrasdelosobjetos.Lasdescripcionesdecoordenadasenestossistemasdebenconvertirseacoordenadasuniversalescartesianasparaserprocesadas.LaFigurasiguientemuestraunsistemacartesianoespecificadoconelorigendecoordenadasyunngulodeorientacinenunmarcodereferenciacartesiano.Paratransformarlasdescripcionesdelobjetodelascoordenadasalascoordenadas.establecemosunatransformacinquesuperponelosejessobrelosejes.Estoserealizaendospasos:(1)Traslacindetalformaqueelorigendelsistemasemuevaalorigen(0,0)delsistema.(2)Rotacindelejesobreeleje.Latransformacindelorigendecoordenadassellevaacaboconlamatrizdetransformacin:
LaorientacindelosdossistemasdespusdelaoperacindetraslacindeberanaparecercomoenlaFigurasiguiente.
-
pg.65
Paraconseguirquelosejesdelosdossistemascoincidan,hacemosunarotacinenelsentidodelasagujasdelreloj:
Concatenarestasdosmatricesdetransformacin,nosdacomoresultadolamatrizcompuestacompletaparatransformarlasdescripcionesdelobjetodesdeelsistemaalsistema:
CAPTULOIV:RECORTES4.1.AlgoritmosderecorteGeneralmente,cualquierprocedimientoqueeliminaaquellasporcionesdeunaimagenqueestndentroofueradeunaregindelespacioespecificadasedenominaalgoritmoderecorteosimplementerecorte.Habitualmente,unareginderecorteesunrectnguloenposicinestndar,aunquepodramosutilizarcualquierformaenunaaplicacinderecorte.Laaplicacinderecortemscomnestenlapipelinedevisualizacin,dondeelrecorteseaplicaparaextraerunaporcindesignadadelaescena(bidimensionalotridimensional)parasuvisualizacinenundispositivodesalida.Losmtodosderecortetambinseutilizanparasuavizarloslmitesdelosobjetos,paraconstruirobjetosutilizandomtodosdemodeladodeslidos,gestionarentornosmultiventanayparapermitirquepartesdeunaimagensemuevan,secopienoseborrenenprogramasdedibujoypintura.Losalgoritmosderecorteseaplicanenprocedimientosdevisualizacinbidimensionalparaidentificaraquellaspartesdeunaimagenqueestndentrodelaventanaderecorte.Todoloqueseencuentrafueradelaventanaderecorte,seeliminadeladescripcindelaescenaquesetransfierealdispositivodesalidaparasuvisualizacin.Unaimplementacineficientederecorteenlapipelinedevisualizacinconsisteenaplicarlosalgoritmosaloslmitesnormalizadosdelaventanaderecorte.Estoreducelosclculos,porquetodaslasmatricesdetransformacingeomtricaydevisualizacinsepuedenconcatenaryaplicaraunadescripcindeunaescenaantesdequeelrecorteselleveacabo.Laescenarecortadasepuededespustransferiralascoordenadasdepantallaparaelprocesamientofinal.Sepuedetratar,algoritmosbidimensionalespara:RecortedepuntosRecortedelincas(segmentosdelnearecta)Recortedereasderelleno(polgonos)RecortedecurvasRecortedetexto
-
pg.66
Elrecortedepuntos,lneasypolgonosesuncomponenteestndardelospaquetesgrficos.Perosepuedenaplicarmtodossimilaresaotrosobjetos,particularmentecnicas,talescomocrculos,elipsesyesferas,ademsdecurvasdetiposplineyasuperficies.Habitualmente,sinembargo,losobjetosconlmitesnolinealesseaproximanmediantesegmentosdelnearectaosuperficiesdepolgonosparareducirlosclculos.Amenosqueseindiqueotracosa,asumimosquelareginderecorteesunaventanarectangularenposicinestndar,conlasaristaslmiteenlascoordenadas,,,.Estasaristaslmitehabitualmentesecorrespondenconuncuadradonormalizado,enelquelosvaloresdexeyseencuentrandentrodelrangoquevaradesde0a1desde1a1.4.2RecortedepuntosbidimensionalesEnunrectnguloderecorteubicadoenlaposicinestndar,mantenemosunpuntobidimensionalparasuvisualizacinsisesatisfacenlassiguientesdesigualdades:
Sinosesatisfaceunadeestascuatroecuaciones,elpuntoserecorta(noseguardaparasuvisualizacin).Aunqueelrecortedepuntosseaplicamenosamenudoqueelrecortedelneasodepolgonos,resultatilendiversassituaciones,sobretodocuandolasimgenessemodelancomosistemasdepartculas.Porejemplo,sepuedeaplicarrecortedepuntosaescenasqueincluyannubes,espumademar,humooexplosionesqueestnmodeladasmediantepartculas,talescomolascoordenadasdeloscentrosdepequeoscrculosoesferas.
4.3Recortedelneasbidimensionales
LaFiguramuestraposiblesposicionesdesegmentosdelnearectaenrelacinconunaventanaderecorteestndar.Unalgoritmoderecortedelneasprocesacadalneadeuna
-
pg.67
escenamedianteunaseriedepruebasyclculosdeinterseccionesparadeterminarsisedebeguardarlalneacompletaounapartedesta.Lapartemscostosadeunprocedimientoderecortedelneaseselclculodelasinterseccionesdeunalneaconlasaristasdelaventana.Portanto,unobjetivoimportanteencualquieralgoritmoderecortedelneasconsisteenminimizarlosclculosdeintersecciones.Paraello,podemosrealizarenprimerlugarpruebasparadeterminarsiunsegmentodelneaestcompletamentedentrodelaventanaderecorteoestcompletamentefuera.Essencillodeterminarsiunalneaestcompletamentedentrodeunaventana,peroesmsdifcilidentificartodaslaslneasqueestncompletamentefueradelaventana.Sisomosincapacesdeidentificarsiunalneaestcompletamentedentroocompletamentefueradeunrectnguloderecorte,debemosentoncesrealizarlosclculosdeinterseccinparadeterminarsiunapartedelalneacruzaelinteriordelaventana.Comprobamosunsegmentodelneaparadeterminarsiestcompletamentedentroofueradelbordedeunaventanaderecorteseleccionada,aplicandolaspruebasderecortedepuntosdelaseccinanterior.Cuandoambospuntosextremosdeunsegmentodelneaestndentrodeloscuatrolmitesderecorte,comolalneaquevadeaenlaFiguraanterior,lalneaestcompletamentedentrodelaventanaderecorteylaguardamos.Cuandoambospuntosextremosdeunsegmentodelneaseencuentranfueradecualquieradeloscuatrolmites(lneaaenlaFiguraanterior),dichalneaseencuentracompletamentefueradelaventanayseeliminadeladescripcindelaescena.Perosiambaspruebasfallan,elsegmentodelneaintersectaconalmenosunlmitederecorteypuedeonocruzarelinteriordelaventanaderecorte.Unmododeformularlaecuacindeunsegmentodelnearectaconsisteenutilizarlasiguienterepresentacinparamtrica,dondelascoordenadasydesignanlosdospuntosextremosdelalnea.
Podemosutilizarestarepresentacinparadeterminardndeunsegmentodelneacortacadaaristadelaventanaderecorte,asignandoelvalordelacoordenadadecadaaristaaxoyyresolviendoparaelparmetrou.Amododeejemplo,ellmiteizquierdadelaventanaestenlaposicinporloquesustituimosxporestevaloryresolvemosparau,ycalculamoselvalordeinterseccinycorrespondiente.Siestevalordeuseencuentrafueradelrangoquevaradesde0a1,elsegmentodelneanointersectacondichaaristadelaventana.Perosielvalordeuseencuentradentrodelrangoquevaraentre0y1,partedelalneaseencuentradentrodedichoborde.Podemosacontinuacinprocesarestaporcininteriordelsegmentodelneaconrespectoalosdemslmitesderecortehastaquehayamosrecortadolalneaenteraoencontremosunapartequeestdentrodelaventana.
-
pg.68
Elprocesamientodesegmentosdelneadeunaescenautilizandolasencillatcnicadescritaenelprrafoanterioresdirecto,peronomuyeficiente.Esposiblereformularlapruebainicialylosclculosdeinterseccinparareducireltiempodeprocesamientodeunconjuntodesegmentosdelnea.Sehandesarrolladoalgoritmosderecortedelneasmsrpidos.Algunosdeestosalgoritmossehandiseadoexplcitamenteparaimgenesbidimensionalesyalgunosseadaptanfcilmenteaconjuntosdesegmentosdelneatridimensionales.RecortedelneasdeCohenSutherlandsteesunodealgoritmosmsantiguosquesehadesarrolladoparaelrecortedelneasrpido,yvariacionesdeestemtodoseutilizanampliamente.EltiempodeprocesamientosereduceenelmtododeCohenSutherlandrealizandomspruebasantesdeprocederconlosclculosdelasintersecciones.Inicialmente,seasignaacadapuntoextremodelaslneasdeunaimagenunvalorbinariodecuatrodgitosllamadocdigoderegin.Cadabitseutilizaparaindicarsiestdentroofueradeunodeloslmitesdelaventanaderecorte.Podemoshacerreferenciaalasaristasdelaventanaencualquierorden.
LaFiguraanteriormuestraunaposibleordenacinenlaquelosbitsestnnumeradosde1a4dederechaaizquierda.Portanto,paraestaordenacin,elbitsituadomsaladerecha(bit1)hacereferenciaalbordeizquierdodelaventanaderecorte,yelsituadomsalaizquierda(bit4)hacereferenciaalbordesuperiordelaventana.Unvalorde1(overdadero)encualquierbitindicaqueelpuntoextremoestfueradelaventana.Deformasimilar,unvalorde0(ofalso)encualquierbitindicaqueelpuntoextremonoestfuera(estdentroosobre)dellmitecorrespondientedelaventana.Aveces,uncdigodereginsedenominacdigodefueraporqueunvalorde1encualquierbitindicaqueelpuntodelespacioestfueradelcorrespondientebordederecorte.Cadaaristadelaventanaderecortedivideelespaciobidimensionalenunsemiespaciointerioryunsemiespacioexterior.Entotal,loscuatrolmitesdelaventanacreannueveregiones.LaFigurasiguienteenumeraelvalordelcdigobinarioencadaunadeestasregiones.Portanto,aunpuntoextremoqueestsituadodebajoyalaizquierdadela
-
pg.69
ventanaderecorteseleasignauncdigoderegin0101,yelvalordelcdigoderegindecualquierpuntointerioralaventanaderecortees0000.
1001 1000 1010
00010000Ventanaderecorte
0010
0101 0100 0110
Losvaloresdelosbitsdeuncdigodereginsedeterminancomparandolosvaloresdelascoordenadasdeunpuntoextremoconloslmitesderecorte.Elbit1seponea1si.Losvaloresdelosotrostresbitssedeterminandeformasemejante.Enlugardeutilizarpruebasdedesigualdad,podemosdeterminarmseficientementelosvaloresdeuncdigodereginutilizandolasoperacionesdeprocesamientodebitsysiguiendodospasos:Calcularlasdiferenciasentrelascoordenadasdelospuntosextremosyloslmitesderecorte.Utilizarelbitdesignoresultantedecadaclculodediferenciaparacambiarelvalorcorrespondientedecadacdigoderegin.(un0denotaunnmeropositivo,yun1denotaunnmeronegativo)EnelcasodelesquemadeordenacinmostradoenlaFiguraanterior,elbit1eselbitdesignodeelbit2eselbitdesignodeelbil3eselbitdesignodeyelbit4eselbitdesignode.Unavezquehemosestablecidoloscdigosderegindetodoslospuntosextremosdetodaslaslneas,podemosdeterminarrpidamentequlneasseencuentrancompletamentedentrodelaventanaderecorteyculesseencuentranclaramentefuera.Cualesquieralneasqueseencuentrancompletamentecontenidasdentrodelasaristasdelaventanatienenuncdigoderegin0000enambospuntosextremosyestossegmentosdelnealosguardamos.Cualquierlneaquetengauncdigoderegindevalor1enelmismobitencadapuntoextremoestcompletamentefueradelrectnguloderecorte,porloqueeliminamosdichosegmentodelnea.Amododeejemplo,unalneaquetengauncdigoderegin1001enunpuntoextremoyuncdigo0101enelotropuntoextremoestcompletamentealaizquierdadelaventanaderecorte,comoloindicaelvalor1enelprimerbitdecadacdigoderegin.
-
pg.70
Podemosrealizarlaspruebasdedentrofueraparalossegmentosdelneautilizandooperadoreslgicos.Cuandolaoperacinorentrelosdoscdigosderegindelospuntosextremosdeunsegmentodelneaesfalsa(0000),lalneaseencuentradentrodelaventanaderecorte.Portanto,guardamoslalneayprocedemosacomprobarlalneasiguientedeladescripcindelaescena.Cuandolaoperacinandentrelosdoscdigosderegindelospuntosextremosdeunalneaesverdadera(no0000),lalneaestcompletamentefueradelaventanaderecorte,ypodemoseliminarladeladescripcindelaescena.Enelcasodelaslneasquenosepuedenidentificarcomoqueestncompletamentedentroocompletamentefueradeunaventanaderecortemediantelaspruebasdelcdigoderegin,secompruebaacontinuacinsiintersectanconloslmitesdelaventana.ComosemuestraenlaFigurasiguiente,lossegmentosdelneapuedeninterceptarconloslmitesderecortesinentrardentrodelinteriordelaventana.
Portanto,pararecortarunsegmentodelneapodransernecesariosvariosclculosdeintersecciones,dependiendodelordenenqueseproceseloslmitesderecorte.Cuandoprocesamoscadaaristadelaventanaderecorte,serecortaunapartedelalnea,ylapartequepermanecedelalneasecompruebafrentealosrestanteslmitesdelaventana.Continuaremoseliminandoparteshastaquelalneaesttotalmenterecortadaolapartequepermanecedelalneaseencuentredentrodelaventanaderecorte.Enelsiguienteestudio,asumimosquelasaristasdelaventanaseprocesanenelorden:izquierda,derecha,inferior,superior.Paradeterminarsiunalneacruzaunlmitederecorteseleccionado,podemoscomprobarlosvalorescorrespondientesdelosbitsdeloscdigosderegindelosdospuntosextremos.Siunodeestosbitses1yelotroes0,elsegmentodelneacruzadicholmite.LaFiguraAnteriormuestradossegmentosdelneaquesepuedenidentificarinmediatamentecomocompletamentedentroocompletamentefueradelaventanade
-
pg.71
recorte.Loscdigosderegindelalneadesdeason0100y1001.Portanto,estdentrodellmiteizquierdoderecortey,estfueradedicholmite.Acontinuacin,calculamoslainterseccin,yrecortamoslapartedelalneadesdea.Lapartequepermanecedelalneaseencuentradentrodelalnealmitederecha,yporelloacontinuacincomprobamosellmiteinferior.Elpuntoextremoseencuentrapordebajodelaaristainferiorderecorteyseencuentraporencimadesta,porloquedeterminamoslainterseccinconestaarista.Eliminamoslapartedelalneadesdeayprocedemosconlaaristasuperiordelaventana.Alldeterminamoslainterseccin.Elltimopasoconsisteenrecortarlapartesituadaporencimadellmitesuperioryguardarelsegmentointeriordesde,hasta.Enelcasodelasegundalnea,obtenemosqueelpunto,seencuentrafueradellmiteizquierdoyseencuentradentro.Portanto,calculamoslainterseccinyeliminamoslapartedelalincaquevadesdeayComprobandoloscdigosderegindelospuntosextremosy,observamosquelapartequepermanecedelalneaseencuentrapordebajodelaventanaderecorteysepuedeeliminartambin.Cuandoserecortaunsegmentodelneautilizandoestatcnicasepuedecalcularunainterseccinconloscuatrolmitesderecorte,dependiendodecmoseprocesanlospuntosextremosdelalneayquordenacinutilicemosenloslmites.
LaFiguramuestralascuatrointerseccionesquesepodrancalcularseparaunsegmentodelneaqueseprocesaf