CS5 Fll 7 D Drwings: Circles nd Curves
Reresening A Circle Elici reresenion: r ± Imlici reresenion:, r F, r F c c rmeric reresenion: θ θ sin cos r r
Drwing Circles Equion for circle: Given: cener c, c nd rdius r c c r c r c ± r c c No n idel roch: Non-uniform scing during evluion cuses noicele rifcs Figure - Also, we hve o evlue ^, nd sqr
Drwing Circles rmeric olr Reresenion for circle: c r cosθ c r sinθ θ se c Allows uniform scing vi he θ vrile θse size is ofen se o e /r. c We cn render djcen oins vi lines o void gs θ se
Drwing Circles Onl need o comue ocn We cn reduce he numer of clculion: Eloi Smmer of Circle Need onl o comue θ,45 or 9,45
The Circle Midoin Algorihm, M E SE Gols: Imlici formulion Finie differences incremenl Ineger rihmeic Ke ide: ech se, decide which iel E or SE is closes o he circle. Choose h iel nd drw i.
The Imlici Circle Equion If M lies inside he circle, drw iel E If M lies ouside he circle, drw iel SE, M E SE
Imlici Formulion, r F r > Noice h r r r > > >, r F > mens, > F, < F oins ouside circle oins inside circle
The Midoin Tes, M, M E SE The sign of FM gives he nswer s o which iel, E or SE, o drw
Formuling n Algorihm Le d e decision vrile which mkes he midoin es. Then he es o decide which iel o drw is jus if d < hen // he midoin is inside he circle // he circle sses closer o he uer iel drw he E iel else // he midoin is ouside he circle // he circle sses closer o he lower iel drw he SE iel
Formuling n Algorihm MidoinCircle rdius, _cener, _cener ; rdius; Circleoins _cener, _cener,, ; while > { if d < // he midoin is inside he circle // he circle is closer o E iel ; Circleoins _cener, _cener,, ; else // he midoin is ouside he circle // he circle is closer o SE iel ; - ; Circleoins _cener, _cener,, ; end
Formuling n Algorihm Circleoins,,, end Drwoin, ; Drwoin, - ; Drwoin -, ; Drwoin -, - ; Drwoin, ; Drwoin, - ; Drwoin -, ; Drwoin -, - ;
Mking he Algorihm Incremenl,,, E SE M M M M, M M,,
Incremenl Formulion d firs F M F, r If we choose E fer his comuion, we mus comue F M ne. Wh is he relionshi eween d firs F M nd F M
Incremenl Formulion Noice h if we consider moving Es: d d firs ne r r since d ne F M so h we cn comue Or jus d d ne ne d firs d firs
Incremenl Formulion Noice h if we consider moving Souhes: d d firs ne r r since d ne F M so h we cn comue Or jus d d ne ne d firs d firs 5 5
Iniil Condiion The firs oin lies on he circle oin, r. The firs midoin is hus F, r, r M E The sring vlue for he es vrile is SE d sr 5 r r 4 r
The Algorihm MidoinCircle r, c, c ; ; r; r; d 5/4 - r; r; Circleoins c, c,,, ; while > do do if if d d < d d * ; ; ; else d d * - 5; 5; ; --; Circleoins c, c,,, ; end end Hern/Bker err: Algorihm on ge should e: * else *-5 see eq ove
Second Order Differences Noice h he incremens re funcions of he oin of evluion, rher hn simle consns: Es: Souhes: d d ne ne d firs d firs 5 Ke ide: incremenl roch cn e lied gin, o he incremens hemselves
Second Order Differences Four cses Es curren ierion/oin of evluion: Es incremen Δ Souhes incremen: Δ E firs, Δ E ne, E ne Δ E firs Δ, 5 SE firs Δ SE ne, 5 Δ SE ne Δ SE firs
Second Order Differences Souhes curren ierion/oin of evluion: Es incremen Δ Souhes incremen: SE firs Δ SE ne Δ E firs, Δ, E ne E ne Δ E firs Δ, 5 Δ, SE ne Δ SE firs 4 5
An Ineger Algorihm h d 4 h Le so h 4 Since nd we ge d 5 5 d sr 4 r susiuion r h sr r h sr Now, if he originl midoin es is d < The new midoin es ecomes h < 4 4 4 Bu since h srs s n ineger nd is onl incremened inegers, he sme es for h will hold: h <
The Finl Algorihm MidoinCircle r, c, c ; r; h - r; dele ; delse *r 5; Circleoins c, c,, ; while > do if h < h h dele; dele dele ; delse delse ; ;
The Finl Algorihm else h h delse; dele dele ; delse delse 4; ; ; Circleoins c, c,, ; end end
Drwing Ellises r r Using olr Coordines c c r cosθ c r sinθ Imlici c f, ellise r c r - c -r r -,, Midoin Ellise Algorihm Hern ge 9 Eloi Smmer -,-,-
Oher Algeric Surfces Bresenhm roch is icll used for low-level scn conversion of Lines, Circles & Ellises. In rincile, n lgeric curve cn e eressed in he Bresenhm sle.. Mesure error o cul curve mke decision. Find ineger form of error. Find incremenl ude of error crieri In rcice, curve eond conics re drwn s series of shor Bresenhm srigh lines.
CS5 Grhics nd Mulimedi D Drwings: Slines
D Freeform Curves or Slines 4 5 7 6
Slines A icl free form curve designed o ss hrough or ner sequence of oins. Slines re rmeerized curves h generlize liner inerolion of srigh lines o higher owers of inerolion rmeer.
Liner inerolion s order Sline sr : end : r,, z, K r,, z, K where : nd Jgged Lines : 4 5 7 6 G : geomeric coninui: he endoins coincide
Qudric inerolion c A B C mches derivives u nd derivive is cho G : ngens hve he sme sloe
Cuic Sline & Inerolion r r A r B r C r D α β γ δ C : firs derivive on oh curves mch join oin Emles: Nurl Cuic Sline Hermie Bezier B-sline The "seed" is he sme efore nd fer
Reresening Curves Cuic curve o minin C coninui Mri Reresenion d c d c ] [ ] [ d c d c
Solving for Coefficiens Coninui C, C, ec.
The Grdien of Cuic Curve d d d d d c d c ] [ ] [ d c d c d d d d c c Mri noion:
The Hermie Secificion s Mri Equion d d d d d d d d d c d c
Solving he Hermie Coefficiens d d d d d d d d d c d c M Hermie G Hermie Cuic Hermie Sline Equion: Hermie Hermie ] [ ] [ G M
Anoher W o Think Aou Slines Cuic Hermie Sline Equion Afer reordering mulilicions Hermie Hermie ] [ ] [ G M 4 ] [ f f f f T
Hermie Blending Funcions
Bezier Sline Conrol oin Conrol oin Anchor oin 4 Anchor oin 4
Convering from Bezier o Hermie Since Susiuing gives: 4 4 d d d d d d d d 4 4 Hermie T M d c d c T 6 M Bezier
Blending Funcions for Bezier Slines B B4 B B 4 B B B B
Bezier Curve roeries Blending funcions lws Curve lws Sum o riion of uni Are non-negive Sisf B B B4 B sses inside he conve hull of he conrol oins Goes hrough he wo endoins Is ngen o he conrol olgon he endoins
Conve Hull roer
Drwing Sline Curves for eween nd gives ll he oins on he curve: /6 / / / 5/6 4 8 8 8 8 7 4 ], [
Disling Cuic Curves Divide inervl [, ] ino n even ieces Evlue he curve ech vlue of wihin he inervl Drw line segmens connecing he oins Wh is he cos of disling curves his w? 4 An incremenl roch is ossile
Forwrd Differencing The incremenl roch used he Midoin lgorihm for lines is form of forwrd differencing Consider he following liner equion: Δ Δ
Forwrd Differencing Δ Δ In his liner cse olnomil of degree, he forwrd difference lied once gives consn erm which cn e used o comue successive vlues of For cuic curve, we hve generl form which is cuic equion, nd clculing single difference will no reduce he equion immediel o consn
Forwrd Differencing d c d c Δ B ending he difference equion nd simlifing we ge c Δ
Cuic Slines: Forwrd Differencing c Δ This difference is he firs order difference, which reduces he degree of he cuic equion, i.e., i is now qudric The second order difference cn e comued ling he sme differencing echnique o he equion for Δ c Δ c Δ
Second-Order Differencing Δ Δ 6 Δ 6 Δ c We wish o evlue oins on he curve for hese vlues of : {,,,,...,} Using he curren differencing scheme firs nd second-order differencing, we ge he following lgorihm for comuing oins on he curve:
Comuing Curve oins ; n d d c 6 6 6 Δ c c Δ
Comuing Curve oins Drwoinin,in; // lso mus comue // he -coordine for i; i < n; i Δ Δ Δ Δ 6 Δ 6 Drwoinin,in;
Third-Order Differencing 6 6 Δ 6 6 Δ 6 Δ Δ Δ Now we hve n incremenl formulion h uses onl simle ddiions in he loo where curve oins re comued:
Algorihm: rd Order Differencing ; ; n d ; Δ c Δ c Δ 6 Δ 6 Δ 6 Δ 6 Drwoinin,in; for i; i < n; i Δ Δ Δ Δ Δ Δ Δ Drwoinin,in; d Δ Δ Δ Δ Δ Δ Δ
A Few Things o Consider We hve n incremenl, fs lgorihm for evluing he oins on cuic sline, where he curve equion is of he form d c α Bu he Bezier curve s we hve develoed i is of he form How cn we formule he incremenl lgorihm for Bezier curves? 4 4 4 B α
We cn ke he originl form of he Bezier curve And regrou erms so h i is rewrien s groued cuic: In his form, Regrouing 4 B α 4 6 B α 4 6 d c
Incremenl Bezier c Δ Using he ming of he conrol oins of he Bezier o he coefficiens of he incremenl cuic, we oin he following equions: The oher equions cn e similrl convered 4 6 d c 6 4 Δ
Jv Code for Drwing Bezier Curve imor jv.w.*; imor jv.le.ale; ulic clss Bezier { rive in oins[], oins[]; rive in limi4; rive in coun; rive in widh; rive in heigh; rive in inervls5; ulic Bezier { oins new in[limi]; oins new in[limi]; coun ; }
Drwing he Curve ulic void incurve Grhics g { doule,, old, old, A, B, C; doule,, ; doule del, del, del; doule del, del, del; if coun! limi reurn; // Iniilize vlues for fs Bezier./inervls; *; *; oins[]; oins[]; old ; old ;
Drwing he Curve: Iniilizions // se u dels for he -coords A -oins[] *oins[] - *oins[] oins[]; B *oins[] - 6*oins[] *oins[]; C -*oins[] *oins[]; del A* B* C*; del 6*A* *B*; del 6*A*;
Drwing he Curve: Iniilizions // se u dels for he -coords A -oins[] *oins[] - *oins[] oins[]; B *oins[] - 6*oins[] *oins[]; C -*oins[] *oins[]; del A* B* C*; del 6*A* *B*; del 6*A*;
Drwing he Curve: Forwrd Differencing for in i ; i < inervls; i { del; del del; del del; del; del del; del del; g.drwline inold, inold, in, in; old ; old ; } // end of for loo } // end of incurve
Mnging he Conrol oins ulic void drwolline Grhics g { for in i ; i < coun-; i { g.fillovl oins[i]-widh/, oins[i]-heigh/, widh, heigh; g.drwline oins[i], oins[i], oins[i], oins[i]; } } g.fillovl oins[coun-]-widh/, oins[coun-]-heigh/, widh, heigh;
Mnging he Conrol oins ulic void ddoin in, in { if coun > limi reurn; oins[coun] ; oins[coun] ; coun; } ulic void resecurve { coun ;} } ulic void seinervl in i { inervls i;}
Mulile Conneced Curve Segmens One long curve cn e formed from mulile conneced curve segmens rincil of locli: chnge in he osiion of single conrol oin will ffec mos curve segmens. This is imorn for efficien inercive mniulion of he curves
Smoohness Join oins G G C C n geomeric coninui: he endoins coincide ngens hve he sme sloe firs derivive on oh curves mch join oin nh derivive on oh curves mch join oin
Smooher Joins Bezier slines cn e joined o form chins, u he join oins gurnee onl geomeric G coninui, no derivive C coninui. Thus he re no s smooh in he derivive sense s we migh like. Oher Choices for Curves: Nurl cuic slines Hermie curves Non-rionl rmeric cuic B-slines B-Slines B-sline: Bsis-sline - curve is reresened wih sis funcions Uniform: curve joins re equll sced in rmeer sce Non-rionl: sis funcions re no consrined o e rionl rmeric cuic: sis funcions re cuic funcions of rmeer
B-Slines Curve segmens overl shring conrol oins ou of he four h re required o define curve segmen. This gurnees ver smooh join oins, u comlices he disl rocess slighl rincile of Locli: how mn curve segmens re ffeced mos when conrol oin is moved?
B-Slines: Single Curve Segmen TM sline G B sline B α [ ] 4 4 4 6 4-4 6 sline B α
Bezier vs. B-sline Curve Definiions [ ] sline B 4 4 4 6 α [ ] Bezier 4 4 6 α
Blending Funcions B B4 B B 4 B B B B B B4 B B 4 4 6 B B B B Bezier Blending Funcions B-sline Blending Funcions
Conrol oins nd he rmeer 5 4 4,,,,,,,,, Q Q Q
Gins nd Losses wih B-Slines Gins: Locli Comc form for mulile segmens C coninui Blending funcion/conve hull roeries Losses: Conrol over ec osiion of curve inerolion vs. roimion
Addiionl Toics o Sud Kno osiion nd conrol Aroimion vs. Inerolion Insering/deleing conrol oins Oher lending funcions
Summr Coninui of free-form curves G, G, C, C, C Cuic Curves Slines Hermie Mri reresenion Blending Bezier B-Sline