Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Racket jatko 6. oppitunti

647 views

Published on

Animaatiot (fysiikan animaatiot)

Published in: Education
  • Be the first to comment

  • Be the first to like this

Racket jatko 6. oppitunti

  1. 1. Racket – jatko ANIMAATIOT
  2. 2. place-image ja empty-scene (place-image 150 250 (empty-scene 300 500))) 2 (0, 0) (150, 250) x y 150 250
  3. 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. 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. 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. 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. 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. 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. 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. 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

×