Vektorit Opiskelijan ohjeet

Samankaltaiset tiedostot
Vektorit Opettajan ohjeet

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

Yleistä vektoreista GeoGebralla

Tekijä Pitkä matematiikka

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Paraabeli suuntaisia suoria.

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla (Opettajan ohje)


4.1 Kaksi pistettä määrää suoran

2 Pistejoukko koordinaatistossa

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

1. a) b) Nollakohdat: 20 = c) a b a b = + ( a b)( a + b) Derivaatan kuvaajan numero. 1 f x x x g x x x x. 3. a)

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Laudatur 4 MAA4 ratkaisut kertausharjoituksiin

Ohjelmoinnin perusteet Y Python

Mb8 Koe Kuopion Lyseon lukio (KK) sivu 1/2

Vektoreita GeoGebrassa.

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

3 TOISEN ASTEEN POLYNOMIFUNKTIO

Pyramidi 4 Analyyttinen geometria tehtävien ratkaisut sivu 352 Päivitetty Pyramidi 4 Luku Ensimmäinen julkaistu versio

x 5 15 x 25 10x 40 11x x y 36 y sijoitus jompaankumpaan yhtälöön : b)

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

y=-3x+2 y=2x-3 y=3x+2 x = = 6

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Derivaatan sovellukset (ääriarvotehtävät ym.)

Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8

Ratkaisut vuosien tehtäviin

x + 1 πx + 2y = 6 2y = 6 x 1 2 πx y = x 1 4 πx Ikkunan pinta-ala on suorakulmion ja puoliympyrän pinta-alojen summa, eli

origo III neljännes D

Trigonometriaa ja solve-komento GeoGebralla

b) Määritä/Laske (ei tarvitse tehdä määritelmän kautta). (2p)

Kertausosa. 5. Merkitään sädettä kirjaimella r. Kaaren pituus on tällöin r a) sin = 0, , c) tan = 0,

Ohjelmoinnin perusteet Y Python

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Sini- ja kosinifunktio

MAB3 - Harjoitustehtävien ratkaisut:

4. Kertausosa. 1. a) 12

Matemaattisen analyysin tukikurssi

MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ Merkitään f(x) =x 3 x. Laske a) f( 2), b) f (3) ja c) YLIOPPILASTUTKINTO- LAUTAKUNTA

VASTAA YHTEENSÄ KUUTEEN TEHTÄVÄÄN

Ratkaise tehtävä 1 ilman teknisiä apuvälineitä! 1. a) Yhdistä oikea funktio oikeaan kuvaajaan. (2p)

Lineaarialgebra MATH.1040 / trigonometriaa

Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).

Tekijä Pitkä matematiikka

MAB3 - Harjoitustehtävien ratkaisut:

11 MATEMAATTINEN ANALYYSI

MAA15 Vektorilaskennan jatkokurssi, tehtävämoniste

Preliminäärikoe Pitkä Matematiikka

x = 6 x = : x = KERTAUSHARJOITUKSIA Funktion nollakohdat ja merkki 229.a) Funktio f ( x) = 2x+ Nollakohta f x b) Funktio gx ( ) = x

5 Rationaalifunktion kulku

B-OSA. 1. Valitse oikea vaihtoehto. Vaihtoehdoista vain yksi on oikea.

LASKIN ON SALLITTU ELLEI TOISIN MAINITTU! TARKISTA TEHTÄVÄT KOKEEN JÄLKEEN JA ANNA PISTEESI RUUTUUN!

Geogebra -koulutus. Ohjelmistojen pedagoginen hyödyntäminen

MAA4 - HARJOITUKSIA. 1. Esitä lauseke 3 x + 2x 4 ilman itseisarvomerkkejä. 3. Ratkaise yhtälö 2 x x = 2 (yksi ratkaisu, eräs neg. kokon.

Aloita Ratkaise Pisteytä se itse Merkitse pisteet saanut riittävästi pisteitä voit siirtyä seuraavaan osioon ei ole riittävästi

c) Vektorit ovat samat, jos ne ovat samansuuntaiset ja yhtä pitkät. Vektorin a kanssa sama vektori on vektori d.

Läpäisyehto: Kokeesta saatava 5. Uusintakoe: Arvosana määräytyy yksin uusintakokeen perusteella.

4 Polynomifunktion kulku

c) Määritä paraabelin yhtälö, kun tiedetään, että sen huippu on y-akselilla korkeudella 6 ja sen nollakohdat ovat x-akselin kohdissa x=-2 ja x=2.

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

Harjoituksia MAA4 - HARJOITUKSIA. 6. Merkitse lukusuoralle ne luvut, jotka toteuttavat epäyhtälön x 2 < ½.

Luento 2: Viivan toteutus

MAA2.3 Koontitehtävät 2/2, ratkaisut

Tekijä Pitkä matematiikka b) Kuvasta nähdään, että b = i 4 j. c) Käytetään a- ja b-kohtien tuloksia ja muokataan lauseketta.

yleisessä muodossa x y ax by c 0. 6p

GEOGEBRAN TYÖKALUT. Siirrä-työkalu. Siirrä

! 7! = N! x 8. x x 4 x + 1 = 6.

on hidastuvaa. Hidastuvuus eli negatiivinen kiihtyvyys saadaan laskevan suoran kulmakertoimesta, joka on siis

KERTAUSHARJOITUKSIA. 1. Rationaalifunktio a) ( ) 2 ( ) Vastaus: a) = = 267. a) a b) a. Vastaus: a) a a a a 268.

Tekijä Pitkä matematiikka a) Ratkaistaan nimittäjien nollakohdat. ja x = 0. x 1= Funktion f määrittelyehto on x 1 ja x 0.

A-osa. Ratkaise kaikki tämän osan tehtävät. Tehtävät arvostellaan pistein 0-6. Taulukkokirjaa saa käyttää apuna, laskinta ei.

JAKSO 2 KANTA JA KOORDINAATIT

KERTAUS KERTAUSTEHTÄVIÄ K1. P( 1) = 3 ( 1) + 2 ( 1) ( 1) 3 = = 4

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2018 Insinöörivalinnan matematiikan koe, , Ratkaisut (Sarja A)

A B = (1, q, q 2 ) (2, 0, 2) = 2 2q q 2 = 0 q 2 = 1 q = ±1 A(±1) = (1, ±1, 1) A(1) A( 1) = (1, 1, 1) (1, 1, 1) = A( 1) A(1) A( 1) = 1

Vektorilla on suunta ja suuruus. Suunta kertoo minne päin ja suuruus kuinka paljon. Se on siinä.

Luento 3: Käyräviivainen liike

3. Harjoitusjakso I. Vinkkejä ja ohjeita

Ohjelmoinnin peruskurssi Y1

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme

Mb8 Koe Kuopion Lyseon lukio (KK) sivu 1/3

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon

Matematiikan tukikurssi

Vektoriarvoiset funktiot Vektoriarvoisen funktion jatkuvuus ja derivoituvuus

Äänekosken lukio Mab4 Matemaattinen analyysi S2016

Matematiikan tukikurssi

Anna jokaisen kohdan vastaus kolmen merkitsevän numeron tarkkuudella muodossa

a) Sievennä lauseke 1+x , kun x 0jax 1. b) Aseta luvut 2, 5 suuruusjärjestykseen ja perustele vastauksesi. 3 3 ja

Kaikkiin tehtäviin ratkaisujen välivaiheet näkyviin! Lue tehtävänannot huolellisesti. Tee pisteytysruudukko B-osion konseptin yläreunaan!

Transkriptio:

Vektorit Opiskelijan ohjeet Ohjelmointipaketti lukioon Työ on tehty osana Helsingin yliopiston kurssia Ohjelmointi matematiikan opetuksessa. Työtä saa vapaasti jakaa eteenpäin, muokata sekä käyttää. Tekijät: Antti Jylhä-Ollila Tom Olander Heli Virtanen 3.5.2018

Sisältö 1 Tunti 1 2 1.1 Turtle-kertaus / Python-kertaus....................... 2 1.2 Tehtävänannot................................. 2 1.3 Kotitehtävät.................................. 3 2 Tunti 2 4 2.1 Tehtävänannot................................. 4 2.2 Kotitehtävät.................................. 4 3 Tunti 3 6 3.1 Tehtävänannot................................. 6 3.2 Kotitehtävät.................................. 7 A Tunti 1 - esitiedot 8 B Tunti 2 - esitiedot 11 C Tunti 3 - esitiedot 13 1

1 Tunti 1 1.1 Turtle-kertaus / Python-kertaus Kertaukseen liittyvä tiedosto löytyy tekstimuodosta liitteestä A sekä tiedostona opiskelijan ohjeiden kansiosta. Lue tämä läpi. Ota kaikissa tiedostoissasi käyttöön vectorskirjasto ja lisää koodisi loppuun waitforclick(), jotta ehdit nähdä koodisi tulokset. 1.2 Tehtävänannot Lataa [opettajan antamasta paikasta] tausta, jolla jolla saat valmiin koordinaatistoakselin. Koordinaatistossa kilpikonnaasi edustaa sana pen. Tee seuraavat tehtävät laittaen kilpikonnasi (pen) piirtämään ne. Koordinaatistossa oletuksena on, että x-akselin maksimiarvo on 10 ja minimiarvo on -10, samoin y-akselille. 1. Piirrä vektori 5 i. Vektorin päässä on nuoli. [Kuva 1] 2. Piirrä vektori 7 i + 2 j. Vektorin päässä on nuoli. Käytä hyväksesi trigonometriaa. [Kuva 2] 3. Muunna koordinaatiston kokoa niin, että x ja y vaihtelevat välillä -15 ja 15. Piirrä 10 erikokoista vektoria v = a i + b j, joiden komponentit a ja b arvotaan molemmat yksitellen väliltä -10...10. Kaikki vektorit lähtevät origosta. [Kuva 3] Lisäksi muuta tehtävän vektoreiden ominaisuuksia: a) Lisää värejä. b) Muuta vektorin paksuutta. c) Muunna tehtävää niin, että kaikki 10 vektoria osuvat ympyrän kehälle (säde = 10). [Kuva 4] Kuva 1: Esimerkkikuva piirrettävästä vektorista tehtävään 1. Kuva 2: Esimerkkikuva piirrettävästä vektorista tehtävään 2. 2

Kuva 3: Esimerkkikuva piirrettävistä vektorista tehtävään 3. Kuva 4: Esimerkkikuva piirrettävistä vektorista tehtävään 3. 1.3 Kotitehtävät Valitse ainakin toinen tehtävistä 1a tai 1b. 1. Piirrä vektorit sekä niiden summa a + b sekä erotus a b, kun a) a = 4 i, b = 3 j b) a = 2 i 4 j, b = 3 i + 5 j. 2. Piirrä neliö vektoreilla. Mikä on näiden vektoreiden summavektori? 3. Piirrä vektoreilla säännöllinen kuusikulmio. Mikä on näiden vektoreiden summavektori? 3

2 Tunti 2 Esimerkki kirjaston käytöstä löytyy liitteestä B. 2.1 Tehtävänannot Lataa vektori-kirjasto [opettajan antamasta paikasta]. Muista myös koordinaatiston skaalaaminen tarvittaessa. Testaa kirjaston toiminta piirtämällä seuraavat vektorit: a = 5 i, b = 2 i + 2 j, c = 3 i 8 j ja d = 5 i + 4 j. 1. Laske ja piirrä seuraavat vektorit: a) a + b ja b + a b) c + d c) c d ja d c d) a + b + c d. 2. Piirrä vektori b viisi kertaa peräkkäin. Vaihda väriä, laske vektori e = 5 b ja piirrä se. a) Miltä näyttää vektori 5 b? b) Piirrä vektorit 2 c + 3 d ja 2( c b). 3. Palauta koordinaatiston kooksi (-10,10). Aloituspiste on (0,0). Valitse vektorille suunta (eli kulma) ja piirrä yksikkövektoreita tähän suuntaan, kunnes seuraava vektori ei enää mahdu koordinaatistoon. [Kuva 5] a) Laske kulma, jossa vektori osui reunaan ja lähetä se samassa kulmassa eteenpäin kääntyen oikealle. b) Automatisoi vektoreiden piirto niin, että aina kun seuraava vektori ei mahdu enää ruudulle, kimpoaa reunasta niin, että tulokulma on sama kuin lähtökulma. Vektoreita piirtyy niin kauan kunnes ohjelma lopetetaan tai kunnes on piirretty haluttu määrä (esim. 50) vektoreita. c) Mallinna kitkaa, eli joka kerta kun vektori on piirretty edellisen perään, seuraavan vektorin pituus on 99.5% edellisen vektorin pituudesta. Lopeta ajo, kun vektorin pituus on alle 0,01. d) Mitä tämä vektoreiden joukko voisi esittää? 2.2 Kotitehtävät Tee ainakin ensimmäinen tehtävä. 1. Käytössäsi on vektori a = 3 i 5 j. Piirrä se. Vaihda väriä ja piirrä vektorin komponenttivektorit. 4

Kuva 5: Kuva alueen reunaan osumisesta ja siitä jatkamisesta. 2. Käytössä on kaksi vektoria, b = 4, 5 i + 2, 3 j ja c = 3, 2 i + 5, 7 j. Laske ja piirrä seuraavat vektorit t b + s c, a) Kun t = 3 ja s = 4. b) Kun t = 3 ja s = 4. c) Kun t = 3 ja s = 4. d) Kun t = 3 ja s = 4. 3. Jatka edellistä tehtävää, ja automatisoi se käyttäen esimerkiksi for-looppia, kun s = { 1, 0, 1} ja t = { 2, 1, 0, 1, 2}. 4. Jatka kotona tuntitehtäviä. 5

3 Tunti 3 3.1 Tehtävänannot Lataa vektori-kirjasto [opettajan antamasta paikasta]. Muista myös koordinaatiston skaalaaminen tarvittaessa. Tutustu myös esitietoihin! Testaa kirjaston toiminta piirtämällä seuraavat alaspäin aukeavat paraabelit, jotka kulkevat kaikki origon kautta ja joiden huippupisteet ovat (4,4), (3,7) ja (8,3). 1. Piirrä alaspäin aukeava paraabeli, jonka huippu on pisteessä (5,3). [Kuva 6] a) Piirrä paraabelin tangentin suuntainen vektori pisteeseen, missä x-koordinaatti on 0. b) Piirrä toisella värillä edellisen vektorin i-komponentti, jonka pituus on 1. Piirrä vielä kolmannella värillä a-kohdan vektorin j-komponentti (pituus k). Kulmakertoimen k saat kirjaston komennolla getk(x0), tämä kertoo tangentin kulmakertoimen kohdassa x = x0. c) Tee funktio, joka piirtää nämä kaikki kolme vektoria, kun funktiolle annetaan x-koordinaatin arvo. Testaa toiminta piirtämällä vektorit, kun x-koordinaatti on 0, 5 ja 8. 2. Paraabelin yhtälö on muotoa y = a x x + b x + c. Piirrä paraabeli käyttämällä apuna paraabelin yhtälöä, kun a = 3 25, b = 6 5 ja c = 0.Tangentin kulmakertoimen pisteessä x0 saat yhtälöstä k = 2 a x0 + b. a) Piirrä paraabelin pisteelle, jossa x=0 tangentin suuntainen vektori ja sen ikomponentti (pituus 1) sekä j-komponentti (pituus k). b) Tee funktio, joka piirtää tangentin suuntaisen vektorin sekä sen komponenttivektorit halutussa x-koordinaatissa eri väreillä. c) Testaa toiminta, kun x-koordinaatti on 0, 5 ja 8. 3. Heität palloa lähtökulmassa α = 50 astetta ja pallo saa alkunopeuden v 0 = 10 m s. Putoamiskiihtyvyys g = 9.81 m s 2. (a) Tallenna muuttujaan a kulman arvo radiaanena, eli a=math.radians(50). Tallenna muuttujaan v0 alkunopeus, eli v0=10 ja muuttujaan g putoamiskiihtyvyyden arvo, g=9.81. (b) Laske alkunopeuden x- ja y-komponentit, v0x = v0*math.cos(a) ja v0y = v0*math.sin(a). (c) Tee funktiot, jotka laskevat nopeuden sekä paikan seuraavien kaavojen avulla: vx(t) = v0x vy(t) = v0y - g*t x(t) = v0x*t y(t) = v0y*t - 0.5*g*t*t Lisäksi seuraavasta voi olla hyötyä: t = x(t) / v0x 6

(d) Piirrä lentoradan kuva, kunnes y-koordinaatti muuttuu negatiiviseksi. (e) Piirrä tangenttivektori ja sen komponentit, kun x-arvo on 0, 5 ja 8. Vihje: Laske t tietyllä x, saat y:n. vx(t) ja vy(t):stä ovat komponenttivektoreiden kertoimet. Kuva 6: Esimerkkikuva paraabelista ja piirretyistä tangenttivektoreista komponentteineen. 3.2 Kotitehtävät 1. Sovitaan vektoreiden aloituskohdaksi origo. Piirrä vektori a = 4.5 i 2.8 j. Laske vektorin pituus. Luo uusi vektori, missä a:n komponentit jaetaan a:n pituudella ja piirrä se. Piirrä kuvaan lisäksi ympyrä, jonka keskipiste on origo ja säde on 1 (turtle circle, yksikköympyrä). Mitä huomaat uuden vektorin pituudesta ja suunnasta? 2. Jatka tuntitehtäviä valmiiksi kotona. 7

A Tunti 1 - esitiedot # # Miten käyttää vectors-kirjastoa # # Jos vectors.py kirjasto on samassa hakemistossa kuin koodisi, # niin voit tuoda kirjaston näin: from vectors import * # Kirjasto mahdollistaa koordinaatiston käytön: koord = CoordinateSystem() # Koordinaatiston oletusarvot ovat sekä x että = [-10,10], # mutta voidaan tarvittaessa muuttaa: koord.setaxes(-20,10,-10,20) # Huomaa, että piirtoikkuna on aina saman kokoinen, # joten todellinen koordinaatiston koko # ei välttämättä ole sama kuin määrittelemämme. # Kirjasto pyrkii pitämään i ja j yksikkövektorit # samanpituisina näytöllä, # jolloin voidaan käyttää perinteisiä laskukaavoja koskien kulmia. # Määritelty alue on joka tapauksessa aina näkyvillä, # mutta ikkuna voi olla myös suurempi. # Kirjasto käyttää Turtle-grafiikkaa, # joten kaikki perinteiset Turtle-ominaisuudet ovat käytettävissä. # Turtle-kynä on muutujassa "pen". # piirrä jana pisteestä (4,4) pisteeseen (-4,4) # sinisellä värillä ja kynäpaksuudella 3 pen.penup() pen.goto(4,4) pen.pencolor("blue") pen.width(3) pen.pendown() pen.goto(-4,4) # piirrä ympyrä alkaen pisteestä (0,-4), # muodostaen säännöllisen 50-kulmion # jonka keskipiste on (0,0) kun säde on 4 pen.penup() pen.pencolor("black") 8

pen.width(1) pen.goto(0,-4) pen.pendown() pen.circle(4,steps=50) # Näin kopioit muuttujan pen arvoa toiseen muuttujaan. # Kyseessä on viittaus olioon, # joten kaikki ominaisuudetkin periytyvät. # Huomaa, että tämänkin jälkeen # pen toimii viittauksena turtleen. kilppari = pen kilppari.pencolor("pink") kilppari.width(5) kilppari.goto(4,-4) ### TRIGONOMETRIA ### # Trigonomtriset funktiot Pythonissa (tarvitaan kun lasketaan kulmilla) # Pythonissa kaikki trigonometriset funktiot # saadaan käyttöön math-kirjastolla # import math # Matematiikassa ja ohjelmointikielissä käytetään # useimmiten radiaaneja yksikkönä, # joten meidän pitää osata tehdä # muunnoksia asteiden ja radiaanien välillä # asteista radiaaneihin: # kulma_radiaaneina = math.radians(kulma_asteina) # radiaaneista asteisiin: # kulma_asteina = math.degrees(kulma_radiaaneina) # tavalliset trigonometriset funktiot (käyttävät radiaaneja!): # s = math.sin(kulma) # c = math.cos(kulma) # t = math.tan(kulma) # Jos haluamme laskea esim sin(50astetta), # niin se tehdään esim näin: # s = math.sin(math.radians(50)) # tämän lisäksi tarvitsemme myöskin # "käänteisfunktiot" näille, eli arcus-funktiot # Arcustrigonometrisia funktioita käytetään, # kun halutaan laskea kulman koko. # kulma = math.asin(vastainen_kateetti / hypotenuusa) # kulma = math.acos(viereinen_kateetti / hypotenuusa) 9

# kulma = math.atan(vastainen_kateetti / viereinen_kateetti) # tämän lisäksi on hyödyllistä käyttää # seuraavaa versiota atan-funktiosta: # kulma = math.atan2(vastainen_kateetti, viereinen_kateetti) # atan2-funktio pystyy käsittelemään # kaikkia kulmia välillä [0,2pi] = [0,360] astetta # HUOM! arcus-funktiot palauttavat kulman radiaaneissa!!!!! # Jos haluamme laskea atan2(5,3) # ja saada vastauksen asteina, niin voimme tehdä esimerkiksi: # k = math.degrees(math.atan2(5,3)) # satunnaislukugeneraattori Pythonissa # lue sisään random kirjasto import random # asetetaan satunnaisukuja x- ja y-muuttujallie x = random.random() #.random() ei ota attribuutteja y = random.randrange(1,5) # x saa satunnaisen arvon välillä [0,1[, # eli kaikki mahdolliset arvot 0 ja 1 välillä, # mukaanlukien 0 ja poislukien 1. # y saa satunnaisen kokonaisarvon välillä [1,5[, # eli joukosta {1, 2, 3, 4}, # huomaa että 5 ei kuulu joukkoon! # Pyhtonissa on myös olemassa random.randint(1,5), # mutta tässä tapauksessa 5 kuuluu maalijoukkoon, # ja tätä halutaan harvoin ohjelmoinnissa. # Python sulkee ikkunan heti kun ohjelma päättyy, # ja emme kerkeä näkemään aikaansannostamme. # Kirjastossa on olemassa metodi jolla ohjelma pysähtyy # ja jää odottamaan, # että käyttäjä klikkaa ikkunaa ennen sammuttamista. koord.waitforclick() 10

B Tunti 2 - esitiedot # # Miten käyttää vectors-kirjastoa # # Jos vectors.py kirjasto on samassa hakemistossa kuin koodisi, # niin voit tuoda kirjaston näin: from vectors import * # Kirjasto mahdollistaa koordinaatiston käytön: koord = CoordinateSystem() # Koordinaatiston oletusarvot ovat sekä x että y = [-10,10], # mutta voidaan tarvittaessa muuttaa: #koord.setaxes(-20,10,-10,20) # Kirjasto käyttää Turtle-grafiikkaa, # joten kaikki perinteiset Turtle-ominaisuudet ovat käytettävissä. # Turtle-kynä on muuttujassa "pen". # Määritellään vektoreita käyttämällä kirjastoa a = Vector(1,1) b = Vector(-2,2) # Määritellään vektori käyttämällä apumuuttujia # komponenttienkertoimille c_i = 5.5 c_j = 3.1 c = Vector(c_i, c_j) # Piirretään vektorit, oletusvärisenä (musta) # ja käyttämällä värimääritystä # (ns. Web-väri nimet toimivat ja HEX-värikoodit) a.draw() b.draw("red") c.draw("#0000ff") # HEX-värikoodi (#RRGGBB): # - alkaa aina #-merkillä ja sen perään 6 merkkiä RrGgBb # - Rr punaisen värikomponentin määrä hexalukuna # - Gg vihreän värikomponentin määrä hexalukuna # - Bb sinisen värikomponentin määrä hexalukuna # Hexaluvut: [00,FF] vastaa 10-järjestelmässä [0,255] 11

# hexa Rr => 10-järjestelmässä R*16 + r # hexanumerot: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, # missä A ~ 10, B ~ 11, C ~ 12, D ~ 13, E ~ 14, F ~ 15) # Huomaa, että vektorit piirretään niin, # että seuraavan vektori on aina edellisen päätepiste # (ihan niinkuin turtle-grafiikassa muutenkin) # Jos halutaan aloittaa pirtäminen toisesta piseestä: pen.penup() # kynä on oletusarvoisesti alhaalla, joten nostetaan se pen.goto(-1,1) Vector(-4,5).draw("#FF88AA", 2) # vektorit piirretään vaikka Turtle-kynä olisikin ylhäällä! pen.goto(-1,1) Vector(-7,-8).draw("#44AA66", 8) # Huomaa miten nuolen paksuutta muutettiin # Python sulkee ikkunan heti kun ohjelma päättyy, # ja emme kerkeä näkemään aikaansannostamme. # Kirjastossa on olemassa metodi jolla ohjelma pysähtyy # ja jää odottamaan, # että käyttäjä klikkaa ikkunaa ennen sammuttamista. koord.waitforclick() 12

C Tunti 3 - esitiedot # # Miten käyttää vekctors-kirjastoa # # Jos vectors.py kirjasto on samassa hakemistossa kuin koodisi, # niin voit tuoda kirjaston näin: from vectors import * # Kirjasto mahdollistaa koordinaatiston käytön: koord = CoordinateSystem() # Koordinaatiston oletusarvot ovat sekä x että = [-10,10], # mutta voidaan tarvittaessa muuttaa: koord.setaxes(-2,20,-2,20) # Kirjasto käyttää Turtle-grafiikkaa, # joten kaikki perinteiset Turtle-ominaisuudet ovat käytettävissä. # Turtle-kynä on muutujassa "pen". # Kirjastossa on valmiina metodi jolla voi piirtää paraabelin, # joka menee origon kautta # alustetaan paraabeli p p = ParabelOrigo() # määritellään paraabelin huippu p.top(10, 10) # piirretään paraabeli, voidaan valita väri ja paksuus p.draw("red", 2) # Kirjastossa voidaan myös käyttää paraabelin yhtälöä hyväksi # alustetaan paraabeli q q = ParabelOrigo() # annetaan paraabelin yhtälöstä y = ax^2 + bx + c parametreina a ja b, # koska kyseessä on paraabeli origon läpi, niin c on aina 0. q.equation(-.15, 3) # piirretään paraabeli q.draw("blue", 4) # kun paraabeli o määritelty sadaan paraabelin # y-arvo syötteellä x funktiolla.gety(x): # haetaan paraabeli p:n y-arvo, kun x on 10 y = p.gety(10) 13

# kun paraabeli on määritelty saadaan # paraabelin tangentin kulmakerroin tietyssä pisteessä # funktiolla.getk(x): # haetaan paraabelin p:n tangentin kulmakerroin kun x on 5 k = p.getk(5) # miten tämä lasketaan ja mikä hyöty tästä on # tulee myöhemmällä matematiikan kurssilla! # Funktiot toimivat Pythonissa melkein # samoin kuin matematiikassakin # matematiikan fuktio f(x) = 10x - 5 # tehdään Pythonissa seuraavasti: def f(x): return 10*x -5 # Funktion käyttö sen jälkeen kun se on määritelty on helppoa: y = f(10) # y saa arvon 10*10-5 = 95 # HUOM! Pythonissa funktio on pakko määritellä # ohjelmakoodissa ennenkuin sitä voidaan käyttää!!! # Python sulkee ikkunan heti kun ohjelma päättyy, # ja emme kerkeä näkemään aikaansannostamme. # Kirjastossa on olemassa metodi jolla ohjelma pysähtyy # ja jää odottamaan, että käyttäjä klikkaa # ikkunaa ennen sammuttamista. koord.waitforclick() 14