KURV- OCH YTAPPROXIMATION MED POLYNOM



Relevanta dokument
Prognoser

Ekvationen (ekv1) kan bl. annat beskriva värmeledningen i en tunn stav där u( x, betecknar temperaturen i punkten x vid tiden t.

Modellering och prediktion av tidsserier gällande sjukförmåner inom socialförsäkringen

Pingsteld över Maramba, Zambia

2 Laboration 2. Positionsmätning

Tentamen i Flervariabelanalys F/TM, MVE035

Om antal anpassningsbara parametrar i Murry Salbys ekvation

Sammanfattning formler och begrepp, första delen av två

Kompletterande kurslitteratur om serier

Programmering Emme-makro rvinst_ic.mac version 2

6 Strukturer hos tidsdiskreta system

Ingen återvändo TioHundra är inne på rätt spår men behöver styrning

Tentamen i Statistik, STA A13 Deltentamen 2, 5p 20 januari 2007, kl

Funktionsteori Datorlaboration 1

Kvinnors arbetsmiljö. Rapport 2012:11. Tillsynsaktivitet 2012 inom regeringsuppdraget om kvinnors arbetsmiljö. Delrapport

Tentamen i Statistik STG A01 (12 hp) 5 mars 2010, kl

Bilaga 6.1 Låt oss studera ett generellt andra ordningens tidsdiskreta system

Multiplikationsprincipen

MS-A0409 Grundkurs i diskret matematik I

ESBILAC. mjölkersättning för hundvalpar BRUKSANVISNING.

SveTys. Affärskultur i Tyskland. Vad är det? Och vad ska jag tänka på?

Enkel slumpvandring. Sven Erick Alm. 9 april 2002 (modifierad 8 mars 2006) 2 Apan och stupet Passagesannolikheter Passagetider...

(a) om vi kan välja helt fritt? (b) om vi vill ha minst en fisk av varje art? (c) om vi vill ha precis 3 olika arter?

FÖRDJUPNINGS-PM. Nr Räntekostnaders bidrag till KPI-inflationen. Av Marcus Widén

Konsoliderad version av. Styrelsens för ackreditering och teknisk kontroll föreskrifter (STAFS 1993:18) om EEG-märkning av färdigförpackade varor

Övningstentamen i MA2018 Tillämpad Matematik III-Statistik, 7.5hp

Markanvisningsavtal för och försäljning av fastigheten Gesällen 25

Exempeltenta 3 SKRIV KLART OCH TYDLIGT! LYCKA TILL!

Vi betygsätter årets skatteprogram

MA2018 Tillämpad Matematik III-Statistik, 7.5hp,

Arbetstagarbegreppet. Arbetstagarbegreppet. Arbetstagarbegreppet 12/3/2014. Bedömningskriterier. Grund rekvisiten

Egna funktioner. Vad är sin? sin är namnet på en av många inbyggda funktioner i Ada (och den återfinns i paketet Ada.Numerics.Elementary_Functions)

Strategiska möjligheter för skogssektorn i Ryssland med fokus på ekonomisk optimering, energi och uthållighet

Utvärdering av tidigarelagd start av prismätningar i nya radio- och TV-butiker

a utsöndring b upptagning c matspjälkning d cirkulation

Lösningsförslag

Begreppet rörelsemängd (eng. momentum)

Multi-Diag. Ledare NEWS. I fokus. Nyheter. Temaartikel. April Sätt fart på däckverksamheten sida 4

Inklusion och exklusion Dennie G 2003

För de två linjerna, 1 och 2, i figuren bredvid gäller att deras vinkelpositioner, θ 1 och θ 2, kopplas ihop av ekvationen

Applikationen kan endast användas av enskilda användare med förtroenderapportering.

Översikt av ouppklarade fall av dödligt våld i Skåne under tiden och framåt i tiden.

KOLPULVER PÅ GAMLA FINGERAVTRYCK FUNGERAR DET?

Uppgift 1 (max 5p) Uppgift 2 (max 5p) Exempeltenta nr 6

BETONGRÖR - EN PRISVÄRD OCH LÅNGSIKTIG LÖSNING

101. och sista termen 1

KMR. mjölkersättning för kattungar BRUKSANVISNING.

Föreläsning F3 Patrik Eriksson 2000

FOURIERSERIER. Definition 1. (Trigonometrisk serie) Ett utryck av följande form. är en trigonometrisk serie.

Innehållsförteckning Tabeller och polynom

Programvara. Dimmer KNX: 1, 3 och 4 utgångar Elektriska/mekaniska egenskaper: se produktens användarhandbok. TP-anordning Radioanordning

Tentamen i Kunskapsbaserade system, 5p, Data 3

Föreläsning 19: Fria svängningar I

Jobbflöden i svensk industri

Löneläget tsk o ortassar landet runt

Datorövning 2 Fördelningar inom säkerhetsanalys

BASiQ. BASiQ. Tryckoberoende elektronisk flödesregulator

Reglerteknik AK, FRT010

Lösningar och kommentarer till uppgifter i 1.1

Lösningar till tentamensskrivning i kompletteringskurs Linjär Algebra, SF1605, den 10 januari 2011,kl m(m + 1) =

Östersjön är ett unikt men hotat hav. Efter den här lektionen kommer du att veta:

Texten " alt antagna leverantörer" i Adminstrativa föreskrifter, kap 1 punkt 9 utgår.

Allmänna avtalsvillkor för konsument

Tentamen i matematisk statistik

Linjär Algebra (lp 1, 2016) Lösningar till skrivuppgiften Julia Brandes

Tenta i MVE025/MVE295, Komplex (matematisk) analys, F2 och TM2/Kf2

Föreläsning G04: Surveymetodik

Uppsala Universitet Matematiska Institutionen Bo Styf. Genomgånget på föreläsningarna Föreläsning 26, 9/2 2011: y + ay + by = h(x)

1 av 10. (sys1) ELEMENTERA OPERATIONER Vi får göra följande elementära operationer med ekvationer utan att ändra systemets lösningsmängd:

Vad är det okända som efterfrågas? Vilka data är givna? Vilka är villkoren?

Skol-SM för unga maskinförare...

FAQ. frequently asked questions

Design mönster. n n n n n n. Command Active object Template method Strategy Facade Mediator

med en differentialekvation. Det förmodligen mest typiska processexemplet på ett (oberoende variabler). Se avsnitt 2.3. Laboratoriet för reglerteknik

LINJÄR ALGEBRA II LEKTION 4

Truckar och trafik farligt för förare

SKÄRDATAREKOMMENDATIONER UDDEHOLM NIMAX

Håkan Pramsten, Länsförsäkringar

12. Rekreation. Nationella mål Kapitlet om rekreation berör de nationella folhälsomålens nionde målområde om fysisk aktivitet.

c n x n, där c 0, c 1, c 2,... är givna (reella eller n=0 c n x n n=0 absolutkonvergent om x < R divergent om x > R n n lim = 1 R.

Lektion 3 Projektplanering (PP) Fast position Projektplanering. Uppgift PP1.1. Uppgift PP1.2. Uppgift PP2.3. Nivå 1. Nivå 2

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del I

Korrelationens betydelse vid GUM-analyser

helst. poäng. (betyg Fx). Vem som Komplettering sker c:a Uppgift Uppgift Uppgift veta hur vänd! Var god

KURVOR OCH PÅ PARAMETERFORM KURVOR I R 3. P(t)=(x(t),y(t),z(t)) T=(x (t),y (t),z (t)) r(t)=(x(t),y(t),z(t))

E I T. Efficient & Integrated Transport. EIT - Efficient & Integrated Transport Processes. Projektkonferens

Tunga lyft och lite skäll för den som fixar felen

Skillnaden mellan KPI och KPIX

Borel-Cantellis sats och stora talens lag

Diskussion om rörelse på banan (ändras hastigheten, behövs någon kraft för att upprätthålla hastigheten, spelar massan på skytteln någon roll?

Leica Lino. Noggranna, självavvägande punkt- och linjelasers

Ordinära differentialekvationer,

SKÄRDATAREKOMMENDATIONER RAMAX HH

Återanvändning. Två mekanismer. Nedärvning av egenskaper (inheritance) Objekt komposition

1 Elektromagnetisk induktion

Tillämpad biomekanik, 5 poäng Plan rörelse, kinematik och kinetik

Introduktion till Reglertekniken. Styr och Reglerteknik. Vad är Reglerteknik? Vad är Reglerteknik? Vad är Reglerteknik? Önskat värde Börvärde

Kurvlängd och geometri på en sfärisk yta

5B1134 MATEMATIK OCH MODELLER FEMTE FÖRELÄSNINGEN INTEGRALER

Transkript:

KURV- OCH YTAPPROXIMATION MED POLYNOM Magus Bodesso Isiuioe för Daaveeskap 999-02-04, 200-02-0 (red), 2003-02-05 (red) Allmä om kurvapproximaio med polyom Dea papper ersäer framsällige i HB: 35-354, FvD: 468-56, Agel: 484-55 eller Hill: 597-663 för de som så öskar de. HB gör mycke bara yers lokal. FvD är mer omfaade och har adra idex (umrerig) ä jag. Agel är rikig bra. Möller ar bara upp Bezier-maerial. Framför all B-splies preseerar jag på e förhoppigsvis apiligare sä. Give e aal ordade puker P i = (x i,y i ),,,2,..., i xy-plae eller P i = (x i,y i,z i ) i 3D, vill ma iblad sammabida dem med e mjuk kurva. Me de fis också fall då ma öjer sig med a de resulerade kurva bara går i ärhee av pukera. I CAD-sammahag där kurvora modelleras fram är de vikig a e flyig av e puk bara påverkar kurva lokal, dvs i ärhee av puke som flyas. Tillämpigsområde iom daorgrafik är modellerig och aimerig. De eklase vore a bara sammabida pukera med räa lijer, me ofas vill ma a kurva skall ha högre regularie ä så. Ma efersrävar åmisoe koiuerlig luig och hels äve koiuerlig krökig, vilke säller krav på koiuerliga försa och adra derivaor. 2 Global ierpolaio med polyom Ma vill aväda ekla fukioer för a beskriva kurvora. Ige är eklare ä polyom, vilka också aväds geomgåede. Äve om de orde vara välbeka för alla, påmier jag om a global ierpolaio med polyom ie är så bra. De resulerade kurva uppvisar ofa mycke krafiga oscillaioer. I de falle beskrivs kurva med e polyom (för resp koordia) med hög gradal. Ma ka skriva P( ) = L i ( )P i där basfukioe eller bladigsfukioe (eg bledig fucio) L i () är e polyom av gradale och alar om hur sor iflyade puke P i har för parameervärde. Vi iför parameervärde i mosvarade pukera P i, dvs P( i ) = P i. Dessa ka ex väljas som i figure eda. De behöver ie vara ekvidisa beläga. 0 2 3-0 2 3 - Figur. Speciella parameervärde. L i kosrueras så a P i har full iflyade för parameervärde i mosvarade P i, me ie ågo för övriga giva puker, dvs, = i L i ( ) = 0, = j, j i Neda har vi ria upp e av dessa basfukioer. Vi ser a de har iflyade över hela iervalle. De resulerade kurva kommer a beskrivas på parameerform P=P(), 0 (eller e lägre al i vissa fall) oberoede av om vi befier oss i 2D eller 3D. Försa puke på kurva mosvarar P(0) och sisa P(). Vi avbildar såluda e iervall på e kurva, se följade figur. z = 2 3 4 5 6 7 0 x Exempelvis ka e rä lije mella vå puker P 0 och P skrivas på forme P=P()=P 0 +S, 0, där rikigsvekor S = P -P 0. E och samma kurva ka beskrivas med måga olika parameerframsälligar. Frå re geomerisk sypuk är de äsa (jfr avsi om G-koiuie i FvD) likgilig vilke vi väljer. Om ågo skall röra sig lägs kurva är de lämplig a parameer är proporioell mo de illryggalagda kurvlägde. Parameer ka då fysikalisk olkas som ide eller kurvlägde. De är ju däremo läare sag ä gjor är ma bara ugår frå e aal puker. =0 P=P() y Figur 2. Basfukioe L 2 () för e fall med 8 puker. Vi ser a fukioe ie ödvädigvis har maximalvärde. (MB: SPLINEPAK.c). Formel för basfukioera är L i ( ) = j ------------ i j = 0, j i j 2 KURV- OCH YTAPPROXIMATION MED POLYNOM

3 Lokal ierpolaio med polyom I sälle skall vi aväda syckevis polyomapproximaio, dvs de resulerade kurva kommer a beså av e aal hopfogade polyomkurvor. Vi gör dea geom a för varje eskil parameeriervall [ i, i+ ] approximera med e polyom, ex i 2D och med redjegradspolyom P i ( ) där a j är vekorer med vå kompoeer och dessuom är olika frå polyom ill polyom (dvs beror på iervallumre, vilke vi dock ej säer u). Lämplige ser ma på x och y var för sig. Alla kurvor av dea yp, dvs hopsaa av polyomkurvor, kallas för splies. Vi kommer här huvudsaklige a se på falle a de lokala kurvora är redjegradskurvor (i de meige a deras parameerframsälligar är av gradale 3). För jämförelses skull as iblad äve gradale och 2 upp. Vissa böcker ger e beydlig allmäare framsällig. E aal meoder beskrivs i följade avsi. Vi går frå de eklase ill de som idag är "sae-ofhe-ar" i CAD-program, ämlige NURBS-kurvor. Ige av sege på väge är borkasa. Vi går däremo ie alls i på daaapassigsmeoder, som ex misa-kvadra-meode. 4 Hermieierpolaio x i ( ) = = y i ( ) a 0 + a + a 2 2 + a 3 3 De här meode har ige direk prakisk iresse me är ekel och ugör grud för e seare. De lokala redjegradskurvora skall ha de giva pukera som ädpuker, dvs P i ( i ) = P i ( ) P i ( i + ) = P i + för i=0,,...,-. Dea ger 2 av de 4 villkor som behövs för a besämma a 0,a,a 2 och a 3. Ma arbear härvid med fördel i e lokal parameer u, varvid u=0 mosvarar i och u= mosvarar i+. I Hermies meod förusäes äve a derivaora med avseede på är käda i de olika pukera och är (om 2D) P i = (x i ( i ),y i ( i )). Noera emellerid a äve om vi aser oss käa luige hos kurva i de giva pukera så är dy y' ( ) dessa derivaor ie käda. I 2D gäller ju för kurvluige a ----- = ----------, vilke iebär a x' i och y' dx x' ( ) i bara ka besämmas på e kosa fakor är. Vi ar u illäggsvillkore (åerige gära urycka i de lokala parameer u) P' i ( i ) = P' i ( 2) P' i ( i + ) = P' i + som illsammas med () ger fyra villkor ur vilka a j ka besämmas, och ma visar lä a (m a p de lokala parameer u) I prakike aväder vi dea koefficiemaris för a förs besämma x-kompoeera av a 0 o m a 3 och därefer y-kompoeera. Dea får upprepas för de olika iervalle. De approximerade jäma kurva ploas seda geom a ma för varje deliervall riar lijer elig ex (om i+ = i +) P i ( i )->P i ( i +0.)->P i ( i +0.2)->...->P i ( i +.0) Nackdelar med meode: Derivaora är i prakike ej käda. Kurva får koiuerlig luig me ie koiuerlig krökig (adra derivaora ar sku). P P 2 ( 3) Figur 3. Till väser visas ågra Hermie-kurvor med samma luig i ädpukera. Till höger kubiska Bezier-kurvor med e skarv. De giva pukera markerade med fyrkaer. 5 Bezierapproximaio a 3 a 2 a a 0 P P 0 0 P 3 = 2 2 3 3 2 0 0 0 0 0 0 P P 2 I avsik a få re lokal påverka ger vi upp krave a samliga puker skall ierpoleras. För gradale 3 besäms Bezierkurva geom a ma ser på fyra kosekuiva puker i söe. Samliga puker kallas syrpuker (eg corol poi). De försa och sisa av dessa skall ierpoleras och kallas iblad (framför all i ypografisk lieraur) därför äve akarpuker. Beraka högra figure ova. Tredjegradskurva mella P 0 och P 3 kommer ebar a påverkas av dessa vå puker och av de vå mellaliggade P och P 2. Novise skulle råda oss a besämma redjegradskurva som de som ierpolerar samliga fyra puker (de skulle ju ge de fyra ödvädiga villkore för besämig av koefficieera), me då skulle vi ie säker få koiuerlig luig och ie heller ågo sä a uppå de. P i P i + P' i P' i + P 6 P 3 P 4 P 5 I sälle bildar vi med hjälp av syrpukera approximaioer ill P' 0 och P' 3 elig P' 0 = 3(P - P 0 ), P' 3 = 3(P 3 - P 2 ) KURV- OCH YTAPPROXIMATION MED POLYNOM 3 4 KURV- OCH YTAPPROXIMATION MED POLYNOM

Varför fakor 3 och ie som på ågo sä verkar aurligare? Jo, om vi låer parameer löpa mella 0 och frå P 0 ill P 3, så är de i bris på ågo bäre rimlig a låa P mosvara värde =/ 3 och P 2 mosvara =2/3. E approximaio av derivaa i P 0 ges därmed av (P - P 0 )/(/3), som är jus högerlede ova. Dessa approximaioer soppar ma seda i i (3) i Hermie-avsie och erhåller på så sä e redjegradspolyom. På mosvarade sä förfares för övriga grupper P 3k,..., P 3k+3 om fyra puker. Mosvarade polyom kommer ydlige a ha lije mella P i och P i+ som högerage i P i om i är e mulipel av 3. Likade för väseragee. Ma ka därmed lä ierakiv syra de approximerade kurvas form. Geom a för varje idex i som är e mulipel av 3 välja P i-, P i och P i+ så a de ligger på e lije, ka ma ge de approximerade sammasaa kurva koiuerlig luig. De polygo som bildas av de fyra syrpukera brukar kallas syrpolygoe. Vi ka aurligvis uifrå de giva beskrivige räka fram e uryck för de lokala polyome uryck i de giva pukera. Vi avsår frå de öje och skriver i sälle bara upp de uryck som i lieraure valige aväds som defiiio av Bezierapproximaio. Vi aar a parameeravsåde mella akarpukera är. På försa kurvsegmee (mella P 0 och P 3 ) gäller 3 P( ) = B i ( )P i där Övig: Visa de. ( 4) B i ( ) 3 i ( ) 3 i i 0 = 0 aars Dessa fukioer, som ju är redjegradspolyom, fis säker uppriade i kursböckera. Allmä ka vi skriva P( ) = B i ( )P i där för i>3 B i () erhålles ur de fyra försa geom e ekel koordiarasformaio. Ma ka göra Bezierapproximaio med godycklig gradal k (mis ). Aale puker liksom aale basfukioer per segme är då k+. De försa basfukioera (med idex = 0,..., k) får ma geom a i (4) bya de vå 3-ora mo gradale k. Basfukioera, som för övrig kallas Bersei polyom (efer e approximaioseoreiker som aväde dem låg ia bilmae Pierre Bezier), är av de giva grade. Bezierapproximaio med gradale mosvaras av valig lijär ierpolaio. Bezierapproximaio med gradale 2 aväds i vissa riprogram, varvid de mella vå akarpuker fis e eda syrpuk. Vi ser a basfukioera är icke-egaiva och a, efersom de är ermera i biomialuvecklige av = ( + (-)) k, summa av dem för varje -värde är. Dessa vå egeskaper är som vi srax skall se av sor beydelse. Vi ka aväda dem för a visa a Bezierapproximaio, ill skillad mo global polyomierpolaio, ie leder ill krafiga oscillaioer. Uppriig av e Bezierpolyom ka aurligvis göras geom a ma beräkar polyomes värde i e aal puker och drar räa lijer. De fis e aa sä som bara kräver helalsarimeik och som aväds i laserskrivare med PosScrip och äve i e del riprogram med ujämigsverkyg. Meode kallas Caseljaus, me vi går ie i på de här. 6 Kovexa hölje Om ma iar på e aal Bezierapproximaioer uppäcker ma a de eskilda kurvsegmee allid ligger iom e måghörig som bildas av fyra eller i vissa fall re av mosvarade syrpuker. De kovexa hölje ill e mägd av puker Q,..., Q M är de misa kovexa mägd som iehåller pukera. Iuiiv fås de i 2D geom a ma späer e gummibad ru pukera. I 3D ar ma i sälle e gummiduk. Maemaisk ugörs de av alla lijärkombiaioer av pukera som har icke-egaiva koefficieer vars summa är, dvs av alla puker Q med M M ( 5) Q = a k Q k, a k = och a k 0 k = k = Vid Bezierapproximaio gäller elig ova för alla puker på kurvsegmee mella P 3k och P 3(k+) a de är sådaa lijärkombiaioer. Följaklige ligger kurva i de kovexa hölje ill P 3k,..., P 3(k+) (om gradale är k i sälle för 3, by de fyra 3-ora i dea sycke mo k). 7 Likformiga B-splies Som idigare är + puker P 0, P,..., P giva. Vi vill approximera med e kurva som ierpolerar sarpuke P 0 och slupuke P och syrs av övriga puker. Kurva skall vara syckevis sammasa av redjegradskurvor. För =3 (4 puker) ka vi klara de med e eda kurvsegme P (), 0. Vi skulle ju ex kua aväda Bezierapproximaio, vilke vår meod i sluäde fakisk iebär. För =4 (5 puker) behöver vi vå kurvsegme P (), 0, och P 2 (), 2. De försa besäms av P 0, P, P 2, P 3 och de adra av P, P 2, P 3 och P 4. Allmä behövs -2 kurvsegme P i (), i- i, i=,..., -2. Vi beeckar med i de parameervärde där P i- () och P i () går ihop. Speciell säer vi =0 (försa segmees sar) och - =-2 (sisa segmees slu). Ma kallar i för skarvvärde eller skarvar (eg kos) och P i ( i ) för skarvpuker. 0 2-2 2 3 - Vi har allså i =i-, i=,...,- och aale skarvar är -. KURV- OCH YTAPPROXIMATION MED POLYNOM 5 6 KURV- OCH YTAPPROXIMATION MED POLYNOM

Vi beeckar de oala kurva med P(), 0= - =-2, dvs på iervalle [ i, i +] är P()=P i (). Jag påmier om a P() är e vekor, dvs P()=[x(), y()] i 2D och med yerligare e kompoe i 3D. P 6 P 7 5 6 7 P 7 () P 8 Tesfråga: Varför modellerar ma ie såda här syckvisa polyom med de lokala polyomes koefficieer? De resulerade kurva, som ka skrivas ( 7) P( ) = B i ( )P i där högs fyra ermer ger ågo bidrag för give, får då koiuerlig luig och krökig. Figure eda visar basfukioera. P 5 P 4 8 P 9 4 P 3 () 3 P 3 P 0 P 2 () P () 2 P P 2 Figur 5. Basfukioera. Till väser för falle 4 puker (4 basfukioer) och ill höger för 8 puker (8 basfukioer). Figur 4. Approximaio med B-splies med =0 giva puker. (GL_SPLINEPAK.c exkl ex). I de allmäa falle äker vi oss u a P i () bara skall påverkas av de fyra pukera P i-, P i, P i+ och P i+2. Iflyade skall aurligvis variera med. Särka av framgågara med Bezierapproximaioe gör vi därför e asas av forme ( 6) P i ( ) = B i ( )P i + B i ( )P i + B i + ( )P i + + B i + 2 ( )P i + 2 De åersår a besämma bladigs/bas-fukioera B i () för i=0,, 2,...,. Efersom vi vill ha lokal påverka, måse vi se ill a B i () bara är skild frå oll ära = i. Därför ka B i () omöjlige vara e redjegradspolyom. Me vi ka låa de vara hopskarvad av redjegradspolyom. Vi försöker åsadkomma dea geom a välja B i () som e redjegradspolyom på var och e av iervalle och såda a B i () är 0 uaför iervalle [ i-2, i+2 ]. De visar sig vara möjlig a göra dea så a B i () global har koiuerliga derivaor upp ill ordig 2. De uppmärksamme läsare ser a bl a P () skapar e problem. Då behövs B 0 (), som skall vara 0 uaför iervalle [ -2, 2 ]. Me ågra skarvar -2, -, och -0 har vi ju ie. Vi åerkommer ill dea om e lie sud. Vi uppår lokal påverka och samidig koiuerlig krökig. De pris vi får beala är samliga puker ie ierpoleras. De beyder dock ie så mycke i e modellerigssysem (som ex CADprogram), där ma främs efersrävar ierakiv arbee med geomerisk gripbara paramerar. De är basfukioera som heer B-splies. Beämige beyder Base Splies med iebörde a de ugör e bas för all syckevis approximaio med polyom. Vi ser av figurera a deras useede varierar ågo beroede av aale puker. Dea visar sig dock bara gälla de yre. De ire som ex B 3 och B 4 i högra figure har e ehelig form och ka beskrivas med B i () = B(- i ) (om ma som vi aar a skillade mella successiva skarvar är ). Våra krav uppfylles om B() är oll uaför [-2,2] och har de regularie som vi öskar oss av B i (). Av figure framgår a basfukioera är icke-egaiva. Vi kommer äve a se ill a deras summa för varje är. Dea beyder a kurvsegmee P i () precis som är de gällde Bezierapproximaio ligger i de kovexa hölje ill de fyra pukera P i-, P i, P i+ och P i+2. Speciell kommer approximaioe a bli e rä lije geom pukera om dessa frå börja ligger på e såda. Lå oss u räka på de kubiska basfukioera. De ormerade basfukioe B() skall vara 0 uaför iervalle <2 och skall vara koiuerlig med koiuerliga derivaor upp ill ordig 2. B() illås vara sammasa av fyra polyom med gradale 3. Vi har därför 6 sorheer - koefficieera - för vars besämig de behövs 6 villkor. Probleme a besämma B() ka således ses som e ekvaiossysem med 6 obekaa. Med e aig klurighe ka vi dock komma billigare uda. Förs och främs reducerar symmeri krig =0 de hela ill 8 sorheer. Vi har villkore KURV- OCH YTAPPROXIMATION MED POLYNOM 7 8 KURV- OCH YTAPPROXIMATION MED POLYNOM

B(2) = 0, B'(2) = 0, B"(2) = 0 p g a regularieskrave B'(0) = 0 p g a symmeri B - () = B + (), B' - () = B' + (), B" - () = B" + () p g a regularieskrave B(0) + 2B() = efersom summa av basfukioera skall vara Dea ger 8 villkor för de 8 paramerar som hör ihop med de väselige vå redjegradspolyom som skall besämmas. Med e lie rick ka vi komma uda eklare. De olika krave gör a på iervalle [,2] måse B() ha forme C(2-) 3. Vi har därmed bara 5 paramerar kvar a besämma. På mosvarade sä är de lämplig a asäa e redjegradspolyom i - på iervalle [0,]. Ma visar ämlige lä och ruimässig a ( 8) B( ) -- ( 2 ) 3 2 6 = -- [ + 3( ) + 3( ) 2 3( ) 3 ] 6 0 2 Vi ka u med hjälp av formel (8) aalyisk överyga oss om a skarvpuke P i ( i ) i allmähe ie sammafaller med de giva puke P i. (8) ger ämlige 4 P i ( i ) = B( )P i + B( 0)P i + B( )P i + + B( 2)P i + 2 = --P 6 i + --P 6 i + --P 6 i + som bara udaagsvis sammafaller med P i. Vi ser emellerid härav a P i ( i ) ligger i de kovexa hölje ill de re pukera P i-, P i och P i+. Om vi ugår frå figurera ova är de på mosvarade lä a beräka de avvikade basfukioera, ex B 0, B och B 2 i högra dele av figure. Efersom vi vill ha ierpolaio i sarpuke P 0, dvs P (0) = P 0, måse med de gjorda asase B 0 (0)= och B (0)=B 2 (0)=0. Om som i figure B 0 () bara är skild frå 0 på [0,] och har vå koiuerliga derivaor måse därför B 0 ()=(-) 3. De båda adra bjuder e aig mera mosåd. De fis e illalade och ehelig sä a beskriva samliga basfukioer. E ire basfukio B i () ka sägas vara besämd av skarvföljde (skarvvekor, eg. ko vecor) [ i-2, i-, i, i+, i+2 ] eller med våra förusäigar [i-3,i-2,i-,i,i+]. De är "cererad" krig i som i vår fall är i-. De ire basfukioera har besäms så a de är 0 uaför iervalle [ i-2, i+2 ]. Vi ka aväda samma formulerig om övriga geom a iföra 3 exra skarvar -2 = - = -0 = 0 före de adra och 3 exra = + = +2 =-2 i slue. B 0 () besäms då av [0,0,0,0,], meda B () besäms av [0,0,0,,2] (om aale puker är mis 5, aars [0,0,0,,]) och B 2 () besäms av [0,0,0,,2] (om aale puker mis 5, aars [0,0,,,]). På mosvarade sä i de adra äde. De ursprugliga skarvföljde om - värde [, 2,..., - ] uökas på dea vis med 6 skarvar, dvs omfaar oal (+)+4 skarvar eller 4 mer ä aale puker. För ierpolaio i ädpukera skall de fyra försa och de fyra sisa i de ya följde vara sisemella lika. Vi har u förklarige ill förfarade i OpeGL. Exempel: För sex puker har vi de ursprugliga skarvföljde [0,,2,3] och de uökade [0,0,0,0,,2,3,3,3,3]. Basfukioe B 0 () ges av de fem försa värdea, äsa av de därpå följade fem, o s v. De fis e rekursiv formel för beräkig av godycklig basfukio B i () give e skarvföljd med fem puker, varav vissa eveuell lika. Dea formel är ugågspuke för resoemage om B- splies i såväl HB (sid 335) som FvD. Vi ar upp de lägre fram. Forfarade har vi ie beräka B () och B 2 (). Me vi lägger ie ed mauell möda på de, efersom de låer sig göras smärfri med ex maemaikprogramme Maple (saras med kommado xmaple). De går ill så här. Förs får ma läsa i e biblioek med > readlib(bsplie); Ma aropar seda e fukio bsplie med re paramerar. De försa ager gradale. De adra öska parameeram och de sisa skarvföljde. T ex får vi med > b0:=bsplie(3,,[0,0,0,0,]); fukioe B 0 () (efer kopierig frå Maple ill FrameMaker och lie redigerig) b0 := PIECEWISE([0, < 0],[- 3 +3* 2-3*+, < ],[0, <= ]) Geom a skriva > facor(b0); får vi e syggare form PIECEWISE([0, < 0],[-(-) 3, < ],[0, <= ]) På likade sä ka vi beräka de öskade B () och B 2 (): > b:=facor(bsplie(3,,[0,0,0,,2])); b := PIECEWISE([0, < 0],[/4**(7* 2-8*+2), < ], [-/4*(-2) 3, < 2],[0, 2 <= ]) > b2:=facor(bsplie(3,,[0,0,,2,3])); b2 := PIECEWISE([0, < 0],[-/2* 2 *(*-8), < ], [-3/2+9/2*-3* 2 +7/2* 3, < 2],[-/6*(-3) 3, < 3],[0, 3 <= ]) Om vi äve beräkar B 3 () som b3, ka vi - efersom Maple arbear symbolisk - förvissa oss om a summa B 0 ()+B ()+B 2 ()+B 3 () blir på iervalle [0,] (om vi u liar på Maple): > simplify(b0+b+b2+b3); PIECEWISE([0, < 0],[, <= ],... [7/6-/2*-/6* 3 +/2* 2, <= 2],[-7/6+/2*+/3* 3-5/2* 2, <= 3], [-8*+32/3-/6* 3 +2* 2, <= 4],[0, 4 < ]) Ma ka koverera urycke så a de läare ka plockas i i valig programkod. T ex > s:=cover(b,procedure); s := proc () piecewise( < 0,0, <,/4**(7* 2-8*+2), < 2,-/4*(-2) 3,2 <=,0) ed Naurligvis går de a ria upp basfukioera om vi vill i Maple. Me u får de vara og. 8 Olikformiga B-splies Ige hidrar a skarvvärdea i ie är ekvidisaa. De eda probleme är a de blir värre a besämma de olika basfukioera. Med olikformiga B-splies avses siuaioer då skarvpukera ie är ekvidisaa. Vi uppehåller oss ie vid de allmäa falle ua går i på e fall som är av sor prakisk iresse och som vi reda mö ämlige a e aal skarvar är lika. Vi aväde dea i ädpukera för a få ierpolaio. Samma sak ka göras i ire puker och bl a leder de ill a Bezierapproximaio ka uppfaas som e specialfall av B-spliesapproximaio. Vad häder om vi låer ågra skarvpuker sammafalla, me bibehåller krave a e basfukio B i () skall vara oll uaför [ i-2, i+2 ]? Vi får då färre sambad och ka ie uppfylla de villkor som vi öskar, dvs vi måse reducera regularieskrave. Avsåde mella skarvara blir u 0 eller. E KURV- OCH YTAPPROXIMATION MED POLYNOM 9 0 KURV- OCH YTAPPROXIMATION MED POLYNOM

såda siuaio visas i följade figur med re skarvvärde som sammafaller för = i. Basfukioe B i () sräcker sig u över bara vå rikiga deliervall. Efersom B i- () skall vara 0 för i+ = i, måse B i- ( i ) = 0. Samma gäller för B i+ och B i+2. Följaklige måse (summakrave) B i ( i ) =. B i 9 Adra gradal Ma ka aväda godycklig gradal k vid B-spliesapproximaio. Basfukioera skall vara sådaa a de har koiuerliga derivaor ill och med ordige k-. För udda gradal k=2m- gäller a B i () är skild frå oll bara på iervalle [ i -m, i +m] och för jäma gradal k=2m på iervalle [ i -m-, i +m]. B i-3 B i-2 B i- 0.8 0.6 B i+ B i+2 B i+3 I falle k = skall vi ha e syckevis lijär fukio som är oll om. Vi får villkore för de ormerade basfukioe B() = 0, B(0) = (elig summaformel ova) dvs med uyjade av symmeri B() = - för och 0 aars. 0.4 0.2 I följade figur har vi ria upp ågra ormerade basfukioer B() för olika gradal med hjälp av Maple: s:=bsplie(,,[-,0,]); s2:=bsplie(2,,[-,0,,2]); s3:=bsplie(3,,[-2,-,0,,2]); s4:=bsplie(4,,[-2,-,0,,2,3]); plo({s,s2,s3,s4},=-3..3, color=black); -2 - i-3 i-2 i-, i, i+ i+2 i+3 2 k= Figur 6. Trippelskarv. Beräkad och riad med Maple. 0.8 k=2 Vi vill a fram e aalyisk uryck för basfukioe B i () för falle i figure. Lå oss för ekelhes skull aa a avsåde mella kosekuiva icke-överlappade skarvar är. Vi ka då ormalisera och aa a de fem iressaa skarvpukera är [-,0,0,0,]. B i () skall vara e redjegradspolyom på [-,0] och e aa på [0,]. Rimlige har vi symmeri, varför de räcker a se på [0,]. Vi har då a (vi slopar idexe) B() = a(-) + b(-) 2 + c(-) 3 Krave koiuerlig adraderivaa i ger a a = b = 0. Och B(0) = ger a B() = (-) 3 I i (=0) får vi u koiuie ebar hos fukioe, ie hos derivaora. Allmä gäller a varje ökig av e skarvs muliplicie säker regularie hos basfukioera som berör puke e seg. Och de jus i de puke. Mosvarade säkig drabbar aurligvis - uom i udaagsfall - vår approximerade kurva. 0.6 0.4 0.2-3 -2 - Figur 7. Några B() kurvor för gradale k=,2, 3 och 4. k=3 k=4 2 3 De är ie svår a visa a rippelskarvar gör a ma får ierpolaio i mosvarade syrpuk. De är ie heller svår a visa a iilliggade rippelskarvar gör a mosvarade kurvsegme är e Bezier-approximaio. Me vi avsår frå dessa överläggigar och kosaerar bara a Bezierapproximaio därmed ka ses som e specialfall av B-spliesapproximaio. När mulipliciee är 2 har vi koiuerlig derivaa. När de är 3 har vi koiuerlig fukio (och äve koiuerlig derivaa vid lämplig placerig av pukera). Hur går de om de är 4? Jo, då blir de resulerade kurva ie es koiuerlig. Således ka vi med e B-splieapproximaio haera äve söderbrua kurvor. För ärmare uredig av dea och belysade figur se FvD. 0 NURBS Alla de approximaiosmeoder vi har ia på hiills ger affi ivariaa kurvor. Med dea meas a de spelar ige roll om ma förs rasformerar de giva pukera och seda beräkar approximaioe eller rasformerar kurva i si helhe. De seare vore e beräkigsmässig förödade ieffekiv meod. E affi rasformaio är e icke-sigulär lijär rasformaio. Lå oss här beecka de med M. Lå P() vara e puk på vår kurva. Då är ( 9) P( ) = C i ( )P i KURV- OCH YTAPPROXIMATION MED POLYNOM 2 KURV- OCH YTAPPROXIMATION MED POLYNOM

där C i () är vissa koefficieer. Dea gäller äve vid kubisk splieierpolaio, me då är de flesa skilda koefficieera skilda frå 0. Efersom rasformaioe M är lijär får vi ( 0) MP( ) = C i ( )MP i som visar de påsådda. Vi ka såluda skala, roera och raslaera våra kurvor geom a göra mosvarade operaioer på de giva pukera och seda göra ex e y Bezierapproximaio. Ige av meodera ger däremo kurvor som är ivariaa uder e perspekivrasformaio, dvs klarar övergåge frå 3D ill 2D. Vi ger ie ågo exempel ua öjer oss med påsåede. Så kallade NURBS (No Uiform Raioal B-Splies) som är e obeydlig geeraliserig av valiga icke-likformiga B-splies ger däremo de. De har också förmåga a represeera valiga kägelsiskurvor (ellipser, parabler och hyperbler) exak, vilke ie heller de idigare meodera klarar. Vidare ger NURBS yerligare modellerigsparamerar. Vi skall här ie bevisa eller es moivera de vå försa egeskapera ua ager bara forme och ser på exempel. B-spliesapproximaio (kallas i ex FvD o-raioal, vilke käs ug) har hiills ieburi ( 6) P i ( ) = B i ( )P i + B i ( )P i + B i + ( )P i + + B i + 2 ( )P i + 2 Mosvarade NURBS-approximaio är ( ) P i ( ) där ale w j är vikvärde som ormal är icke-egaiva (aars ka de bl a bli problem i ämare). Om alla w j = har vi de valiga falle. Beräkigsmässig iebär NURBS iga komplikaioer. Vi ersäer bara i kalkylera B j () med w j B j ( ) ------------------------- w s B s ( ) s Effeke av a ha w j aorluda ä är a P i ( i ) dras ärmre P i är w i är sörre ä och växer. Beräkigsaspeker för B-spliesapproximaio På iervalle [ i, i+ ] ges B-spliesapproximaio P i () av formel (6). Uppriige av de kurvsegmee görs geom a vi beräkar och sammabider elig ex P i ( i ) -> P i ( i +0.) -> P i ( i +0.2) ->... -> P i ( i +) i + 2 w j B j ( )P j j = i ---------------------------------------- i + 2 w j B j ( ) j = i Beräkig av P i () för e viss -värde kräver beräkig av B i- (), B i (), B i+ () och B i+2 (). = Lå oss förs se på likformiga falle och ua a a häsy ill ädpuksprobleme. Efersom alla basfukioera då ka uryckas i e gemesam, B i () = B(- i ), där B() =0 för >2, räcker de a beräka B() i e lie aal puker som lagras i e vekor. Beräkige av P i () för de förusedda - värdea blir därmed äsa ögoblicklig. Om vi har mulipla skarvar (som ju klarar ädpukera) me för övrig likformighe, beyder de bara a ma måse iföra yerligare ågra vekorer med värde för modifierade basfukioer. Samma gäller om ma har e lie aal olika iervall-lägder. Vi ämde a ma ka iföra basfukioer äve för adra gradal k ä 3. Lå oss aväda beeckige B k,i () för dessa. Basfukioera skall vara uppbyggda av k-egradspolyom och vara sådaa a de har koiuerliga derivaor ill och med ordige k- (i fråvaro av muliplicie, aars lägre). De är skilda frå oll på e iervall med k+2 skarvpuker. För udda gradal k=2m- gäller a B i () är skild frå oll bara på iervalle [ i -m, i +m] och för jäma gradal k=2m på iervalle [ i -m-, i +m] (i figur 7 olyckligvis lie aorluda). Am. Vissa förfaare aväder adra umrerigar av basfukioera, ex a B k,i () hör ill [ i, i+k+ ]. Åer adra avsår frå all umrerig och skriver B k,[uppräkig av skarvpukera] (). De ka också ämas a somliga låer k så för gradale+. De fis e ie oiressa rekursiv sambad mella basfukioera av olika ordigar k. Vi skall ie bevisa de ua bara oera de med e par kommearer. Formel urycker B k,i () i B k-,i () och B k-,i+ () om k är udda (aars by de vå sisa i mo i-). I följade figur är [ v, h ] de iervall på vilke B k,i () är skild frå oll. B k,i () v v+ i h- h h-k v+k v+k+ B k-,r () B k-,r+ () Figur 8. Figur som belyser rekursiosformel. I figure är r=i om k udda och r=i- om k jäm. Vidare är h=i+m och v=i-m (om k udda) resp v=i-m- (om k jäm), där k=2m (om k jäm) och k=2m- (om k udda). Med beeckigara i figure gäller v h ( 2) B k, i ( ) = --------------------B v + k k, r ( ) + --------------------B v h k, r + ( ) h k De är klar a gradale höjs med och a söde (de iervall där e fukio är skild frå oll) uvidgas. På grud av fakor (- v ) ökas regulariee också med i väsra ädpuke. De åersår egelige bara a visa a mosvarade gäller i övriga skarvar me de avsår vi ifrå. Give B 0,i () = för i- < i och 0 för övrig, ka ma därför beräka basfukiosvärde för godycklig gradal och för likformiga likaväl som olikformiga skarvföljder. Sabb går de däremo ie. Maple aväder sig av dea formel, är de ar fram formler för B-splies. Krave B ( 0, i ) = i gör a B 0,i () bara ka vara i edera i- (vilke vi val) eller i. KURV- OCH YTAPPROXIMATION MED POLYNOM 3 4 KURV- OCH YTAPPROXIMATION MED POLYNOM

De fis e komplikaio. Säg a vi vill beräka B 3,i () är i är e rippelskarv, ex för skarvföljde [-,0,0= i,0,]. Då behövs B 2 för bl a [-,0,0,0], som i si ur behöver B för [-,0,0] och för [0,0,0]. För de seare är emellerid ämare 0! De ekla uväge är a srua i de ermer där ämare är 0. 2 Yor 2. Allmä I avsi beskrev vi e olkig av parameerframsällige P=P(), 0 för e kurvsycke. På mosvarade sä ka parameerframsällige P=P(u,v), 0 u,v, för e ysegme (eg. pach) ses som avbildige av e kvadra. Se följade figur. v Figur 9. Ysegme 0 Exempel: Pla ya. Give e puk P 00 och vå icke-parallella vekorer S och T späer P = P(u,v) = P 00 + us + vt, 0 u,v, e pla ysegme med fyra hör. Vi ka aleraiv sara med re giva puker P 00, P 0, P 0, varefer S= P 0 -P 00 och T=P 0 -P 00. 2.2 Segmevis approximaio u Vi ger oss u i på mosvarighee ill syckevis approximaio för kurvor. Vi äker oss a de lokala approximaioe skall göras på e segme mosvarade 0 u,v (precis som vi i kurvfalle såg på e segme 0 ). E rikig käsla för arbee med yor får ma ie grais. Mosvarighee ill lijär ierpolaio skulle då vara a vi besämde e pla som gick geom de fyra pukera P(u,v), u=0,,v=0,. Me vi har då e villkor för mycke (jfr exemple i slue av 4.). Vill vi approximera lokal med pla måse vi sälle ha riaglar som bassegme. I sälle blir de aurliga approximaioe e bilijär (beyder a de är lijär i varje parameer för sig) ya P( u, v) = a i, j u i v j, 0 u, v 0 i, j Vi har här fyra fria paramerar, vilka går a besämma ur de fyra geomeriska villkore. x Me precis som är de gäller kurvor vill ma ha bäre (läs mjukare) approximaioer. Näsa seg är bikubiska yor u=0 v=0 z v= u= y Vi har u hela 6 fria paramerar, vilka går a besämma om vi förusäer a P, P u, P v och P uv är giva i de fyra höre. Dea yp av approximaio kallas Fergusoapproximaio och är allså mosvarighee ill Hermieapproximaio. Me de är ydlige ä värre a arbea med. Vi övergår därför ill våra favorier Bezier och B-splies frå kurvfalle. E varia är a kosruera e bi-bezierya (valige uelämas bi-), dvs (vi är bara iresserade av de kubiska falle) P( u, v) = B i ( u)b ( j v )P i,, 0 u, v j 0 i, j 3 där P ij är syr- och akarpukera. Ma har fyra sådaa puker i varje koordiarikig, dvs oal 6 s. Ya går geom ebar fyra av dessa ämlige P 00, P 03, P 30 och P 33. Se figurer i böckera. E aa är a kosruera e bi-b-splieya (valige uelämas bi-), dvs (vi är bara iresserade av de kubiska falle) P( u, v) = B i ( u)b ( j v )P i,, 0 u, v 2 j 0 i, j där P ij, 0 i,j, är syrpukera. Vi har här aagi a aale puker är lika i de båda "rikigara", me de ka aurligvis vara olika. Se åerige figurer i böckera. 3 Lie som ide ie räcke ill P( u, v) = a i, j u i v j, 0 u, v 0 i, j 3 Vi har äm a vale av parameriserig har viss beydelse. De skulle ma kua säga mera om. Vi har också sag ågo i sil med a "koiuerlig krökig" är ekvivale med koiuerlig adraderivaa. De är u ie rikig sa. Ma ka ha koiuerlig luig och krökig ua a ha koiuerlig derivaa resp adra derivaa. För dea fis e begrepp som kallas G-koiuie (s k geomerisk koiuie). Dea ka avädas för a få yerligare e parameer som påverkar kurvforme. De iresserade hävisas ill FvD. HB sid 38-39 är däremo alldeles för korfaad. Vidare garaerar ie koiuerlig derivaa (eller koiuerlig adraderivaa) a ma har koiuerlig luig (resp koiuerlig krökig). Problem med luige ka uppsår i puker där både x'() och y'() är 0. Äve u hävisas de iresserade ill FvD. Till slu e par refereser. Fari: Curves ad Surfaces for Compuer Aided Geomeric Desig: A Pracical Guide, Academic Press 990. Tros si iel e halv-eoreisk bok, som jag själv haf viss öje av. Delvis läläs, me iehåller också svårgeomräglig maerial. Iehåller sidor där Bezier beskriver bakgrude ill sia kurvor. IEEE-idskrife Compuer Graphics ad Applicaios iehåller ofa läsvär och välpreseera maerial. E exempel. Les Piegl: O NURBS: A Survey, Jauary 99 KURV- OCH YTAPPROXIMATION MED POLYNOM 5 6 KURV- OCH YTAPPROXIMATION MED POLYNOM