Parametarske krive Bezier B-spline.ppt

Embed Size (px)

Citation preview

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    1/30

    RaunarskaRaunarska

    grafikagrafika

    predavanjapredavanjadoc.dr. Samir Lemedoc.dr. Samir [email protected]@mf.unze.ba

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    2/30

    26.26. Paramearske kriveParamearske krive

    !!""zierzier krivuljekrivulje!!""zierzier funkcije mijeanjafunkcije mijeanja

    #niform#niformnini!$!$ssplplajnoviajnovi%%e#e#niformniformnini&& RRaaccionalionalnini

    !$!$SplajnoviSplajnovi '%#R!S('%#R!S(

    ))onveronverzijazijaizme*uizme*ussplplajnovaajnovaRRaserizacija splajnovaaserizacija splajnova

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    3/30

    SplSplajnoviajnovi$$ ++isorisorijaija

    )oninuirane krivulje)oninuirane krivulje''splinessplines( koje( kojeprolaze kroz zadaneprolaze kroz zadanekonrolne akekonrolne ake

    )oninuie drugog)oninuie drugogreda 'zajednikereda 'zajednike

    ake& angeneake& angene'prvi( i drugi izvodi'prvi( i drugi izvodi

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    4/30

    !!""zierzier krivuljekrivulje

    !!""zierzier krivuljekrivuljese mogu posmarai kaose mogu posmarai kaoproirenje linearne inerpolacijeproirenje linearne inerpolacijeinerpolacijom vieg redainerpolacijom vieg reda

    p0

    p1

    p0

    p1p2

    p0

    p1

    p2

    p3

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    5/30

    !!""zierzier krivuljekrivulje

    SlineSline,ermi,ermiovimovim&& ali imaju inuiivnijuali imaju inuiivnijudefiniciju izvoda krajnji+ aakadefiniciju izvoda krajnji+ aaka

    -eiri konrolne-eiri konrolneake& od koji+ake& od koji+su dvije vorovisu dvije vorovi "oslonac"

    "tetiva"

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    6/30

    !!""zierzier krivuljekrivulje

    rijednosi izvodarijednosi izvoda !ezier!ezier krivulje ukrivulje uvorovima zavise od susjedni+ aakavorovima zavise od susjedni+ aaka

    SkSkalar /alar /je izabran samo za ovu krivuje izabran samo za ovu krivu

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    7/30

    0snovna marica0snovna marica !!""zierzier krivuljekrivulje

    1ari1arinanafformormaa

    11!ezier!ezierje dobra osnovna marica jer ima dosa .je dobra osnovna marica jer ima dosa .

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    8/30

    !!""zierzier funkcije mijeanjafunkcije mijeanja

    3unkcija mijeanja definie ujecaj konrolne ake na3unkcija mijeanja definie ujecaj konrolne ake nasvaku aku krivulje.svaku aku krivulje.

    rijednos znai da konrolna aka nema ujecaja narijednos znai da konrolna aka nema ujecaja naaku krivulje.aku krivulje.

    4ko funkcija mijeanja ima vrijednos 5& krivulja sijee4ko funkcija mijeanja ima vrijednos 5& krivulja sijeekonrolnu aku.konrolnu aku.

    0va familija polinoma0va familija polinomase nazivase naziva !ernsein!ernsein

    ppololiinominomima /. redama /. reda '/& k( '/& k( kk'5$('5$(/$k/$k7 89 k 89 /7 89 k 89 / Svi su poziivni na inervaluSvi su poziivni na inervalu:&5;:&5; %ji+ov zbir iznosi%ji+ov zbir iznosi 55

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    9/30

    !!""zierzier funkcije mijeanjafunkcije mijeanja

    Svaka aka na krivojSvaka aka na krivojjejelinearlinearnanakkombinaombinacijacijakkonrolonrolni+ aakani+ aaka

    Sve vrijednosiSve vrijednosikombinacija su poziivnekombinacija su poziivne

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    10/30

    )onveksna kombinacija konrolni+)onveksna kombinacija konrolni+aakaaaka

    #vijek osaje unuar graninog regiona#vijek osaje unuar graninog regiona''kkonveonveksnaksnaljuskaljuska( defin( definisanogisanogkkonrolonrolnimnimakamaakama

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    11/30

    PodjelaPodjela!!""zierzier krivuljakrivulja

    P0

    P1 P2

    P3

    M01

    M12

    M23

    M012M123

    M0123

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    12/30

    PodjelaPodjela!!""zierzier krivuljakrivulja

    P0

    P1 P2

    P3

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    13/30

    de asede asellijevllijevaalgorilgoriaamm

    1o=e se na>i aka na1o=e se na>i aka na !!""zierzier krivulji za svaku vrijednoskrivulji za svaku vrijednospparamearamerarattslinimslinim algorialgorimommom

    4ko se npr$ =eli4ko se npr$ =elit=0.25t=0.25&& umjeso da se uzmu srednje ake&umjeso da se uzmu srednje ake&uzimaju se ake nauzimaju se ake na.2?.2?du=inedu=ine

    P0

    P1P2

    P3

    M01

    M12

    M23

    t=0.25

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    14/30

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    15/30

    !$Spl!$Splajnajnkrivekrive''kkububneneperiodiperiodinene((

    Polazi se od niza konrolni+ aakaPolazi se od niza konrolni+ aaka Bzaberu se C ake od sredine nizaBzaberu se C ake od sredine niza

    'p'pi$2i$2& p& pi$5i$5& p& pii& p& piD5iD5(( dd!!""zierzier ii,ermie,ermie idu izme*uidu izme*uppi$2i$2iippiD5iD5!$Spl!$Splajnajnnene inerpolinerpoliraira''ne dodirujene dodiruje(( nijednu odnijednu od

    nji+ ali aproksimira prolaze>i kroznji+ ali aproksimira prolaze>i krozppi$5i$5iippii

    pp00

    pp44

    pp22pp11

    pp33

    pp55

    pp66

    QQ33

    QQ44QQ55

    QQ66

    tt33

    tt44 tt55tt66

    tt77

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    16/30

    #niform#niformnini!$!$ssplplajnoviajnovi

    AproAproksksimimirajuiirajuissplplajnoviajnovi4pro4proksksimimirajuirajunD5nD5 kkonrolonrolni+ aakani+ aaka PP& P& P55& A& P& A& Pnn& n& n //

    )rivulja se sasoji od)rivulja se sasoji od n E2n E2 segmenaasegmenaakkububni+ni+polpoliinomnomaaFF//& F& FCC& A F& A Fnn

    se mijenja du=se mijenja du= !$spl!$splajnaajnakaokaoFFiiG G ii89 8 89 8 iD5iD5 ii'i 9'i 9 cijeli brojcijeli broj(( susuvorne akevorne akekoje spajajukoje spajaju

    segmen Fsegmen Fiisa segmenomsa segmenomFFiD5iD5 )riva je)riva je uniforuniformnamnajer se vorovi nalaze najer se vorovi nalaze na

    jednakim inervalima paramera jednakim inervalima paramera

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    17/30

    #niform#niformnini!$!$ssplplajnoviajnovi

    PrviPrvisegmensegmenkrivuljekrivulje& F& F//&&jejedefindefinisanisanpomo>u prve C konrolne akepomo>u prve C konrolne ake

    PosljednjiPosljednji segmensegmenkrivuljekrivulje& F& Fmm

    &&jejedefindefinisan pomo>u posljednje C konrolneisan pomo>u posljednje C konrolneakeake& P& Pm$/m$/& P& Pm$2m$2& P& Pm$5m$5& P& Pmm

    Svaka kSvaka konrolonrolnanaaka ujee na Caka ujee na Csegmena krivuljesegmena krivulje

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    18/30

    0snovna marica0snovna marica !$spl!$splajnaajna

    3ormul3ormulisaiisai5656jednainajednainada se na*eda se na*e 5656nepoznai+nepoznai+

    5656jednaina forsirajujednaina forsiraju& & 55&& ii22kkoninuioninuieeizme*u susjedni+ segmenaaizme*u susjedni+ segmenaaFF

    =

    0141

    0303

    0363

    1331

    6

    1splineBM

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    19/30

    !$!$ssplplajnajn

    Hake du=Hake du= !$!$splajna se izraunavaju kao isplajna se izraunavaju kao ikodkod !!""zierzier krivuljekrivulje

    ( ) PUMtQ SplineBi =

    ( ) [ ]

    =

    +

    +

    +

    3

    2

    123

    0141

    0303

    0363

    1331

    6

    11

    i

    i

    i

    i

    i

    p

    p

    p

    p

    ttttQ

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    20/30

    !$!$splajnsplajn

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    21/30

    %%e#e#niformniformnini&& RRaaccionalionalnini

    !$!$SplajnoviSplajnovi '%#R!S('%#R!S(0snovni0snovni elemenelemen geomerije u /Igeomerije u /Iprogramuprogramu1aJa1aJa

    1odel1odeli se sasoje od povrina definisani+i se sasoje od povrina definisani+pomo>upomo>u%#R!S%#R!S$a$a&& a ne poligonaa ne poligona

    %#R!S%#R!S su glakisu glaki

    %#R!S%#R!S za+ijevaju poseban napor da biza+ijevaju poseban napor da bise posiglo da ne budu glakise posiglo da ne budu glaki

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    22/30

    %%e#e#niformniformnini&& RRaaccionalionalnini

    !$!$SplajnoviSplajnovi '%#R!S('%#R!S(

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    23/30

    ))onveronverzijazijaizme*uizme*ussplplajnovaajnova

    Posmaraju se dvije osnovne formulacijePosmaraju se dvije osnovne formulacijesplajnova za dvije vrse splajnovasplajnova za dvije vrse splajnova

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    24/30

    ))onveronverzijazijaizme*uizme*ussplplajnovaajnova

    1ogu>e je1ogu>e je ransformransformisaiisaikkonrolonrolne akene akeiz jedne osnove splajna u druguiz jedne osnove splajna u drugu

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    25/30

    ))onveronverzijazijaizme*uizme*ussplplajnovaajnova

    0vom k0vom konveronverzijomzijom&& mo=e se kmo=e se konveronverovaiovai!$!$ssplplajn uajn u!!""zierzier ssplplajnajn

    !!""zierzier splajnovi su laki za raserizacijusplajnovi su laki za raserizaciju'renderovanje( od !$splajnova'renderovanje( od !$splajnova

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    26/30

    RRaserizacija splajnovaaserizacija splajnova

    ,orner,ornerov meodov meod BnBnkkremenalremenalninimeodmeod '3orKard Iifference('3orKard Iifference(

    1eod podjele na podsegmene1eod podjele na podsegmene

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    27/30

    ,orner,ornerovovmmeodeod

    %umeriki meod za pribli=no raunanje%umeriki meod za pribli=no raunanjekorijena polinoma.korijena polinoma.

    Hri mno=enjaHri mno=enjaHri sabiranjaHri sabiranja

    xxxx

    xxxx

    dtctbtatx

    dtctbtatx

    +++=

    +++=

    ])[()(

    )( 23

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    28/30

    3orKard Iifference3orKard Iifference

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    29/30

    1eod podjele na podsegmene1eod podjele na podsegmene

    Prije

    podjele

    Nakon

    podjele

  • 7/24/2019 Parametarske krive Bezier B-spline.ppt

    30/30

    RRaserizacijaaserizacija!!""zierzier splajnasplajna

    public void spline(ControlPoint p0, ControlPoint p1,

    ControlPoint p2, ControlPoint p3, int pix) {

    flot len ! ControlPoint"dist(p0,p1) # ControlPoint"dist(p1,p2)

    # ControlPoint"dist(p2,p3)$

    flot c%ord ! ControlPoint"dist(p0,p3)$

    if (&t%"bs(len ' c%ord) 0"2f) return$ ftPixel(pix, p0"x, p0"*)$

    ControlPoint p11 ! ControlPoint"+idpoint(p0, p1)$

    ControlPoint t+p ! ControlPoint"+idpoint(p1, p2)$

    ControlPoint p12 ! ControlPoint"+idpoint(p11, t+p)$

    ControlPoint p22 ! ControlPoint"+idpoint(p2, p3)$

    ControlPoint p21 ! ControlPoint"+idpoint(p22, t+p)$ ControlPoint p20 ! ControlPoint"+idpoint(p12, p21)$

    spline(p20, p12, p11, p0, pix)$

    spline(p3, p22, p21, p20, pix)$