computacion grafica

85
pág. 1 PRIMITIVAS GRÁFICAS Autor: Ing. HERNÁN NINA HANCO CUSCOPERÚ PRESENTACIÓN El presente texto surge de la necesidad de disponer de un material bibliográfico para el desarrollo de aplicaciones de Computación Gráfica. INDICE INTRODUCCIÓN El Texto plantea la revisión de conceptos fundamentales de Primitivas Gráficas que describe una serie de algoritmos para el dibujo de primitivas gráficas como líneas, curvas, rellenado y recortes. Para explicar el movimiento de figuras se estudian las operaciones básicas de transformaciones como es la traslación, rotación y escalamiento. En base a las operaciones de transformación básicas se describen las operaciones derivadas como la reflexión e inclinación. Para representaciones de varias operaciones secuenciales se utiliza las transformaciones compuestas que son implementadas utilizando las matrices homogéneas. El concepto de primitivas gráficas está acompañada de implementaciones en Java y como librería gráfica OpenGL. CAPÍTULO I: Librería gráfica OpenGL y Java CAPÍTULO II: Primitivas gráficas Una escena gráfica está compuesta por varios objetos gráficos, para describir la escena se debe describir y representar cada uno de los objetos gráficos; para esto hacemos uso de primitivas gráficas que corresponde a representación de puntos, líneas, círculos, superficies, líneas curvas, curvas tipo spline, poli líneas, etc. Descripción de objetos gráficos Para describir los objetos gráficos de una escena debemos identificar la posición y orientación de los objetos en un sistema de coordenadas de referencia en 2D o 3D, seguidamente cada objeto es representado gráficamente utilizando primitivas gráficas de puntos, líneas, curvas, rellenos, etc.

Upload: noe-gutierrez-huahuatico

Post on 08-Nov-2015

26 views

Category:

Documents


4 download

DESCRIPTION

lineas

TRANSCRIPT

  • 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