SlideShare a Scribd company logo
1 of 10
Racket – jatko
ANIMAATIOT
place-image ja empty-scene
(place-image 150 250 (empty-scene 300 500)))
2
(0, 0)
(150, 250)
x
y
150
250
(0, 0)
(150, 50)
x
y
150
250
(0, 0)
(150, 250)
x
y
150
250
(0, 0)
(150, 450)
x
y
150
250
Animaatio
y=50 y=250 y=450
Animaatiot
Universe-kirjaston avulla voidaan tehdä animaatioita.
Tutustutaan UFO-animaatioon:
(require 2htdp/image)
(require 2htdp/universe)
(define UFO (overlay/xy
(ellipse 120 40 "solid" "violet")
30 -25
(circle 30 "outline" "black")))
(define (piirrä-kuva y)
(place-image UFO 150 y (empty-scene 300 500)))
(big-bang 0
(to-draw piirrä-kuva)
(on-tick add1))
4
Ufo rullaa: modulo
Kirjoita apufunktio, joka palauttaa y:n välille 0 – 500. Käytä siihen
moduloa, joka palauttaa osamäärän (y/500) jakojäännöksen.
(define (piirrä-rullaava y)
(piirrä-kuva (modulo y 500)))
Vaihda apufunktio big-bang:iin:
(big-bang 0
(to-draw piirrä-rullaava)
(on-tick add1))
5
Ufo laskeutuu ja nousee
Lisää cond:lla ehdot ufon käyttäytymiselle eri väleillä:
(define (piirrä-kuva y)
(cond [(<= 0 y 500)
(place-image UFO 150 y (empty-scene 300 500))]
[(<= 501 y 1000)
(place-image UFO 150 (- 1000 y) (empty-scene 300 500))]
[else
(text "Loppu" 30 "red")]))
Vaihda moduloon uusi jakaja: 1000
(define (piirrä-rullaava y)
(piirrä-kuva (modulo y 1000)))
6
Painovoima-animaatio
7
Simuloidaan kahta palloa, joista punainen pallo putoaa
kuussa ja sininen pallo maassa. Lopuksi piirretään liikkeen
kuvaajat.
Animaatiopohja, johon täydennetään funktiot, joitka
kuvaavat matkan riippuvuutta ajasta.
𝑠 𝑡 =
1
2
𝑔𝑡2
Täydennä vakiot:
(define g-maa 0)
(define g-kuu 0)
Täydennä funktiot (myös check-expect) valmiiksi:
(define (matka-kuussa t)
0)
(define (matka-maassa t)
0) Valmis animaatio
plot2D – kuvaajat
Yksi kuvaaja piirretään näin (0 < t < 100):
(require teachpacks/plot2D)
(plot2D (func matka-kuussa 0 100))
Kaksi kuvaajaa samaan kuvaan piirretään näin
(0 < t < 100):
(plot2D (list
(func matka-kuussa 0 100 ”kuussa”)
(func matka-maassa 0 100 ”maassa”)
”aika (s)”
”matka (m)”))
8
Heiluri-animaatio
Animaatiopohja, johon täydennetään funktio,
joka kuvaa heilurin kulman (theta) riippuvuutta
ajasta:
θ 𝑡 = θ0 cos
𝑔
𝐿
𝑡
Jossa θ0 on lähtökulma ja L heilurin pituus.
Täydennä vakiot:
(define g 0)
Täydennä funktio valmiiksi:
(define (theta t)
0)
Piirrä myös kuvaaja:
(require teachpacks/plot2D)
(plot2D (func theta 0 100))
9
Valmis
animaatio
Auto-animaatio
Simuloidaan kahta autoa, joilla on eri nopeudet. Lopuksi piirretään liikkeen kuvaajat.
Animaatiopohja, johon täydennetään funktiot, joitka kuvaavat matkan riippuvuutta ajasta.
𝑠 𝑡 = 𝑣𝑡
Täydennä funktiot (myös check-expect) valmiiksi:
(define (s1 t)
0)
(define (s2 t)
0)
Piirrä myös kuvaaja:
(require teachpacks/plot2D)
(plot2D
(list
(func s1 0 100
(string-append (number->string v1) “m/s”))
(func s2 0 100
(string-append (number->string v2) “m/s”)))
“aika (s)” “matka (m)”)
10
Valmis animaatio

More Related Content

More from Tiina Partanen

Computational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsComputational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsTiina Partanen
 
Racket mooc 2017 - yleistä
Racket mooc 2017 -  yleistäRacket mooc 2017 -  yleistä
Racket mooc 2017 - yleistäTiina Partanen
 
Racket mooc 2017 - aikataulu
Racket mooc 2017 -  aikatauluRacket mooc 2017 -  aikataulu
Racket mooc 2017 - aikatauluTiina Partanen
 
Ohjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: JatkokurssiOhjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: JatkokurssiTiina Partanen
 
Racket materiaali (Koodausta kouluun - projekti)
Racket materiaali (Koodausta kouluun - projekti)Racket materiaali (Koodausta kouluun - projekti)
Racket materiaali (Koodausta kouluun - projekti)Tiina Partanen
 
Ohjelmoinnin historiaa
Ohjelmoinnin historiaaOhjelmoinnin historiaa
Ohjelmoinnin historiaaTiina Partanen
 
Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Tiina Partanen
 
Koodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynoteKoodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynoteTiina Partanen
 
Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Tiina Partanen
 
Koodauksen ensiaskeleet
Koodauksen ensiaskeleetKoodauksen ensiaskeleet
Koodauksen ensiaskeleetTiina Partanen
 
Racket MOOC - viikko 6
Racket MOOC - viikko 6Racket MOOC - viikko 6
Racket MOOC - viikko 6Tiina Partanen
 
Racket MOOC - viikko 3
Racket MOOC - viikko 3Racket MOOC - viikko 3
Racket MOOC - viikko 3Tiina Partanen
 

More from Tiina Partanen (20)

Computational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsComputational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of Mathematics
 
Racket mooc 2017 - yleistä
Racket mooc 2017 -  yleistäRacket mooc 2017 -  yleistä
Racket mooc 2017 - yleistä
 
Racket mooc 2017 - aikataulu
Racket mooc 2017 -  aikatauluRacket mooc 2017 -  aikataulu
Racket mooc 2017 - aikataulu
 
Ohjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: JatkokurssiOhjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: Jatkokurssi
 
Racket materiaali (Koodausta kouluun - projekti)
Racket materiaali (Koodausta kouluun - projekti)Racket materiaali (Koodausta kouluun - projekti)
Racket materiaali (Koodausta kouluun - projekti)
 
Ohjelmoinnin historiaa
Ohjelmoinnin historiaaOhjelmoinnin historiaa
Ohjelmoinnin historiaa
 
Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)
 
Koodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynoteKoodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynote
 
Kurkistus koodaukseen
Kurkistus koodaukseenKurkistus koodaukseen
Kurkistus koodaukseen
 
Racket MOOC jakso 7
Racket MOOC jakso 7Racket MOOC jakso 7
Racket MOOC jakso 7
 
Racket Turtle
Racket TurtleRacket Turtle
Racket Turtle
 
Racket MOOC - jakso 5
Racket MOOC - jakso 5Racket MOOC - jakso 5
Racket MOOC - jakso 5
 
Racket MOOC - jakso 2
Racket MOOC - jakso 2Racket MOOC - jakso 2
Racket MOOC - jakso 2
 
Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)
 
Legorobottialkeet
LegorobottialkeetLegorobottialkeet
Legorobottialkeet
 
Lapset koodaa?
Lapset koodaa?Lapset koodaa?
Lapset koodaa?
 
Koodauksen ensiaskeleet
Koodauksen ensiaskeleetKoodauksen ensiaskeleet
Koodauksen ensiaskeleet
 
Racket MOOC - viikko 6
Racket MOOC - viikko 6Racket MOOC - viikko 6
Racket MOOC - viikko 6
 
Racket MOOC viikko 5
Racket MOOC viikko 5Racket MOOC viikko 5
Racket MOOC viikko 5
 
Racket MOOC - viikko 3
Racket MOOC - viikko 3Racket MOOC - viikko 3
Racket MOOC - viikko 3
 

Racket jatko 6. oppitunti

  • 2. place-image ja empty-scene (place-image 150 250 (empty-scene 300 500))) 2 (0, 0) (150, 250) x y 150 250
  • 3. (0, 0) (150, 50) x y 150 250 (0, 0) (150, 250) x y 150 250 (0, 0) (150, 450) x y 150 250 Animaatio y=50 y=250 y=450
  • 4. Animaatiot Universe-kirjaston avulla voidaan tehdä animaatioita. Tutustutaan UFO-animaatioon: (require 2htdp/image) (require 2htdp/universe) (define UFO (overlay/xy (ellipse 120 40 "solid" "violet") 30 -25 (circle 30 "outline" "black"))) (define (piirrä-kuva y) (place-image UFO 150 y (empty-scene 300 500))) (big-bang 0 (to-draw piirrä-kuva) (on-tick add1)) 4
  • 5. Ufo rullaa: modulo Kirjoita apufunktio, joka palauttaa y:n välille 0 – 500. Käytä siihen moduloa, joka palauttaa osamäärän (y/500) jakojäännöksen. (define (piirrä-rullaava y) (piirrä-kuva (modulo y 500))) Vaihda apufunktio big-bang:iin: (big-bang 0 (to-draw piirrä-rullaava) (on-tick add1)) 5
  • 6. Ufo laskeutuu ja nousee Lisää cond:lla ehdot ufon käyttäytymiselle eri väleillä: (define (piirrä-kuva y) (cond [(<= 0 y 500) (place-image UFO 150 y (empty-scene 300 500))] [(<= 501 y 1000) (place-image UFO 150 (- 1000 y) (empty-scene 300 500))] [else (text "Loppu" 30 "red")])) Vaihda moduloon uusi jakaja: 1000 (define (piirrä-rullaava y) (piirrä-kuva (modulo y 1000))) 6
  • 7. Painovoima-animaatio 7 Simuloidaan kahta palloa, joista punainen pallo putoaa kuussa ja sininen pallo maassa. Lopuksi piirretään liikkeen kuvaajat. Animaatiopohja, johon täydennetään funktiot, joitka kuvaavat matkan riippuvuutta ajasta. 𝑠 𝑡 = 1 2 𝑔𝑡2 Täydennä vakiot: (define g-maa 0) (define g-kuu 0) Täydennä funktiot (myös check-expect) valmiiksi: (define (matka-kuussa t) 0) (define (matka-maassa t) 0) Valmis animaatio
  • 8. plot2D – kuvaajat Yksi kuvaaja piirretään näin (0 < t < 100): (require teachpacks/plot2D) (plot2D (func matka-kuussa 0 100)) Kaksi kuvaajaa samaan kuvaan piirretään näin (0 < t < 100): (plot2D (list (func matka-kuussa 0 100 ”kuussa”) (func matka-maassa 0 100 ”maassa”) ”aika (s)” ”matka (m)”)) 8
  • 9. Heiluri-animaatio Animaatiopohja, johon täydennetään funktio, joka kuvaa heilurin kulman (theta) riippuvuutta ajasta: θ 𝑡 = θ0 cos 𝑔 𝐿 𝑡 Jossa θ0 on lähtökulma ja L heilurin pituus. Täydennä vakiot: (define g 0) Täydennä funktio valmiiksi: (define (theta t) 0) Piirrä myös kuvaaja: (require teachpacks/plot2D) (plot2D (func theta 0 100)) 9 Valmis animaatio
  • 10. Auto-animaatio Simuloidaan kahta autoa, joilla on eri nopeudet. Lopuksi piirretään liikkeen kuvaajat. Animaatiopohja, johon täydennetään funktiot, joitka kuvaavat matkan riippuvuutta ajasta. 𝑠 𝑡 = 𝑣𝑡 Täydennä funktiot (myös check-expect) valmiiksi: (define (s1 t) 0) (define (s2 t) 0) Piirrä myös kuvaaja: (require teachpacks/plot2D) (plot2D (list (func s1 0 100 (string-append (number->string v1) “m/s”)) (func s2 0 100 (string-append (number->string v2) “m/s”))) “aika (s)” “matka (m)”) 10 Valmis animaatio