TANA17 Matematiska beräkningar med Matlab

Relevanta dokument
TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

TANA19 NUMERISKA METODER

Interpolation. 8 december 2014 Sida 1 / 20

Parametriserade kurvor

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

Rapportexempel, Datorer och datoranvändning

6 Derivata och grafer

Lösningar och kommentarer till uppgifter i 2.2

Tentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Linjära ekvationssystem

Kurvor och ytor. Gustav Taxén

Interpolation Modellfunktioner som satisfierar givna punkter

Tillämpning: Bildinterpolation. Ekvationslösning. Integraler. Tillämpning: En båt. Räkning med polynom. Projekt. Tentamensinformation.

4.4. Mera om grafiken i MATLAB

9 Skissa grafer. 9.1 Dagens Teori

TSBB14 Laboration: Intro till Matlab 1D

% Föreläsning 3 10/2. clear hold off. % Vi börjar med att titta på kommandot A\Y som löser AX=Y

Omtentamen. TNM077 3D-datorgrafik och animering kl 8-12 Inga hjälpmedel. (samt även TNM008 3D-datorgrafik och VR)

15 februari 2016 Sida 1 / 32

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Det är lätt att hitta datorprogram som ritar kurvor av enkla funktionsuttryck,

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Numeriska metoder, grundkurs II. Dagens program. Exempel Kubiska splines. Ögna igenom de gamla övningsanteckningarna.

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

8 + h. lim 8 + h = 8

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Kan du det här? o o. o o o o. Derivera potensfunktioner, exponentialfunktioner och summor av funktioner. Använda dig av derivatan i problemlösning.

Matematisk Modellering

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

Uppsala Universitet Matematiska Institutionen Bo Styf. Lösningar till kryssproblemen 1-5. Uppgifter till lektion 1: = 10 x. = x 10.

5 Om f (r) = 0 kan andraderivatan inte avgöra vilken typ av extrempunkt det handlar om. Återstår att avgöra punktens typ med teckenstudium.

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Vetenskapsdagen 2016 SciLab för laborativa inslag i matematik eller fysik

TMA226 datorlaboration

Tentamen TNM077, 3D datorgrafik och animering

f(x) = x 2 g(x) = x3 100 h(x) = x 4 x x 2 x 3 100

KPP053, HT2016 MATLAB, Föreläsning 3. Plotter och diagram Läsa och skriva data till fil

ATT RITA GRAFER MED KOMMANDOT "PLOT"

Funktioner och grafritning i Matlab

Parabeln och vad man kan ha den till

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Introduktion till MATLAB

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

Ickelinjära ekvationer

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet april

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

Tentamen TNM061, 3D-grafik och animering för MT2. Tisdag 3/ kl 8-12 TP51, TP52, TP54, TP56, TP41, TP43. Inga hjälpmedel

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Introduktion till Word och Excel

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

0.31 = f(x 2 ) = b 1 + b 2 (x 3 x 1 ) + b 3 (x 3 x 1 )(x 3 x 2 ) = ( ) + b 3 ( )(

Mer om funktioner och grafik i Matlab

TMV156 Inledande matematik E, 2010 DATORÖVNING 2 ANONYMA FUNKTIONER, FUNKTIONSGRAFER OCH LITE OPTIMERING

f(x) = x 2 g(x) = x3 100

där x < ξ < 0. Eftersom ξ < 0 är högerledet alltid mindre än Lektion 4, Envariabelanalys den 30 september 1999 r(1 + 0) r 1 = r.

Matematikdidaktik för bättre matematikkunskaper Jonas Bergman Ärlebäck

Numerisk Analys, MMG410. Lecture 12. 1/24

UPPGIFTER KAPITEL 2 ÄNDRINGSKVOT OCH DERIVATA KAPITEL 3 DERIVERINGSREGLER

Polynomanpassning i MATLAB

Studieanvisning till Matematik 3000 kurs C/Komvux

HANDLEDNING TILL LABORATION I GEOMETRI

Sidor i boken f(x) = a x 2 +b x+c

Ordinära differentialekvationer (ODE) 1 1

Labbrapport svängande skivor

Block 5: Ickelineära. ekvationer? Läroboken. Löpsedel: Icke-lineära. ekvationer. Vad visade laborationen? Vad visade laborationen?

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Ellipsen. 1. Apollonius och ellipsen som kägelsnitt.

Matematik 3c Kap 2 Förändringshastighet och derivator

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

Handledning till laboration i geometri

Högskoleprovet Kvantitativ del

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 18:e augusti klockan

Planering för Matematik kurs D

Något om algebraiska kurvor

Kurs: Datorstödd konstruktion fortsättningskurs, V15-3, TM051B. Provmoment: Tentamen 2,5 högskolepoäng. Personnummer:.. (Ifylles av student)

MA2001 Envariabelanalys

Sekant och tangent Om man drar en rät linje genom två punkter på en kurva får man en sekant. (Den gröna linjen i figuren).

Fria matteboken: Matematik 2b och 2c

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

MMA132: Laboration 1 Introduktion till MATLAB

Moment 1.15, 2.1, 2.4 Viktiga exempel 2.2, 2.3, 2.4 Övningsuppgifter Ö2.2ab, Ö2.3. Polynomekvationer. p 2 (x) = x 7 +1.

Matematik D (MA1204)

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

f(x + h) f(x) h f(x) f(x h) h

Transkript:

TANA17 Matematiska beräkningar med Matlab Projekt 3. Beskrivning av geometri med Beziérkurvor 1 Introduktion Inom design har man behov av effektiva sätt att beskriva kurvor och ytor med matematiska funktioner som är lätta att arbeta med. Ett av de vanligaste kallas Beziér kurvor och introducerades ursprungligen inom bilindustrin. De flesta verktyg för grafisk design innehåller funktioner för att hantera Beziér kurvor eller ytor. En av de allra vanligaste tillämpningarna är design av fonter. Enskilda bokstäver har en standardiserad form som måste beskrivas matematiskt för att det skall vara enkelt att generera bokstäver i olika storlek eller upplösning. Design av ett font paket innebär att en konstnär ritar den önskade formen på varje bokstav. Varje kurvstycke beskrivs sedan matematiskt på ett sådant sätt att det blir enkelt att generera pixelbilder som föreställer bokstaven. Hela proceduren beskrivs på ett bra sätt i boken The Metafont book, av Donald E. Knuth (som även skrivit typsättningssystemet TeX). I detta projekt skall vi använda Beziér kurvor for att designa bokstaven d. 1.1 Beziérkurvor En kubisk Beziér kurva definieras utifrån 4 styrpunkter, P 1,..., i R 2. Vi inför en lokal parameter t och utgår ifrån identiteten 1 = 1 3 = (1 t+t) 3 = (1 t) 3 +3(1 t) 2 t+3(1 t)t 2 +t 3, 0 t 1. Vi har alltså fyra stycken positiva vikter som summerar till1. Inför vi Beziér kurvan som ett polynom p(t) = (1 t) 3 P 1 +3(1 t) 2 tp 2 +3(1 t)t 2 P 3 +t 3, 0 t 1. Så kommer varje punkt p(t) vara ett viktat medelvärde av punkterna P 1,...,. Dessutom gälller att p(0) = P 1, och p(1) =. Deriverar vi polynomet p(t) så ser vi även att tangent riktningen i start respektive slutpunkt blir p (0) = 3(P 2 P 1 ), och p (1) = 3( P 3 ). Dessa egenskaper gör det lätt att designa en kurva med lämpligt utseende. See Figur 1 för ett exempel på hur ett kurvstycke kan se ut. Mera komplicerade kurvor skapas genom att flera Kubiska Beziér kurvor sammanfogas på ett sådant sätt att hela kurvan får önskade egenskaper, see Figur 2 för ett exempel.

P 2 P 3 P 1 Figur 1: En kubisk Beziér kurva som definierats av 4 styrpunkter. P 2 P 3 P 7 P 5 P 6 P 1 Figur 2: Två kubiska Beziér kurvor som ges av styrpunkter {P 1,P 2,P 3, } respektive {,P 5,P 6,P 7 }. Interpolationspunkten är gemensam. Villkoret P 3 = P 5 garanterar att kurvans tangent är kontinuerlig. 2

1.2 Font design A P 3 C P 1 B Figur 3: Bokstaven d genererad från en vektoriserad font. Bokstavens konturlinje nestår av linjesegment och Beziér kurvor. Ett exempel på hur interpolationspunkter kan införas visas till vänster. P 2 Fonten Computer modern är designad just med kubiska Beziér kurvor. Ett exempel på en bokstav finns i Figur 3. Målet med projektet är att hitta lämpliga interpolations- och styrpunkter för att ge bokstaven d den form den har i bilden. Dela in varje krökt kurvsegment i lämpliga delar som går att beskriva med en Beziér kurva. För varje del skall styrpunkter väljas så att kurvan får kontinuerlig tangentriktning i interpolationspunkterna. Då vi har hittat alla styrpunkter som behövs för att definiera bokstaven kan vi enkelt rita upp formen. De flesta font paket innehåller dessutom alternativa former, såsom kursiv eller tjock stil. Dessa fås genom att avbilda punkterna innan de ritas upp med lämpliga transformationer. Exempelvis får kursiv stil genom att vi avbildar (x,y) (x+αy,y). 2 Implementering av Algoritmen Det första vi behöver är en funktion som ritar upp en Beziér kurva. Den skall kunna anropas engligt >> DrawBezierCurve( P1, P2, P3, P4 ); Funktionen skall då skapa en vektor t med jämt utspridda värden mellan 0 och 1, och beräkna, samt plotta, polynomet p(t). Det skall även gå att anropa funktionen med >> DrawBezierCurve( P1, P2, P3, P4, control ); 3

Så skall streckade räta linjer som sammanbinder styrpunkterna ritas ut, see Figur 1. Detta måste lösas genom frivilliga inargument. Använd nargin. Testa din funktion genom att rita upp en halvcirkel genom att skriva >> P1 = [0, 0] ; P2 = [0, 4/3] ; P3 = [2, 4/3] ; P4 = [2, 0] ; >> DrawBezierCurve( P1, P2, P3, P4 ); >> axis equal För att rita upp bokstaven finns en Matlab funktion DrawFont. Den ritar upp de linjestycken som ingår i bokstaven men måste kompletteras med styrpunkter och anrop till DrawBezierCurve för att rita upp de krökta kurvbitarna. Även denna funktion skall kunna anropas antingen som eller >> DrawFont() >> DrawFont( control ) om man vill rita upp styrpunkterna tillsammans med bokstaven. Slutligen skall du anpassa funktionen DrawFont så att den kan anropas som >> DrawFont( italic ) och då skall en kursiverad bokstav ritas upp. Lämplig lutning fås om skuvningen ( ) 1 0.07 A = 0 1 appliceras på alla interpolations- och styrpunkter innan vi ritar upp bokstaven. 4

3 Redovisning och Rapporten Rapporten skall ha följande kapitel och innehåll - Introduktion där problemet, dvs beskrivning av geometri med Beziér kurvor introduceras. Egenskaper hos Beziér kurvor skall beskrivas kortfattat. Ni skall även kort introducera tillämpingen dvs design av font paket. - Matlab program där ni beskriva alla Matlab funktioner och program som ni skrivit. Ni skall inte klippa in programkoden utan för varje funktion beskriv kort funktionens syfte, vilka inparametrar den behöver och vad den gör. - Resultat där det beskrivs hur metoden fungerade. Ni skall ge exempel på en sammansatt kurva där bestående av två Beziér kurvor sådana att hela kurvan får kontrinuerlig tangentriktning. De valda styrpunkterna skall redovisas och det skall förklaras hur punkterna är valda. Ni skall även redovisa eran färdiga bokstav. Både i normal och kursiv form. Antalet linjer respektive Beziér kurvor som användes är viktigt att redovisa. - Diskussion där resultatet sammanfattas. Fungerade metoden? Blev resultatet bra? De grafer som minst måste ingå i rapporten är - Den sammansatta Beziér kurva ni gjort med styrpunkter utritade. Den designade bokstaven skall ritas upp både i vanlig och kursiv stil. Rita upp bokstaven både med och utan styrpunkterna. Se dessutom generalla krav på rapport och matlab program från hemsidan. 5