Racket – alkeet 2. KUVAT
2
2.1 Peruskuvioiden piirtäminen
Jotta kuvioita voi piirtää, täytyy ottaa käyttöön grafiikkakirjasto. Kirjoita alla oleva teksti DrRacketin määrittelyikkunaan ja paina ”run”.
(require 2htdp/image)
Kokeile seuraavia piirtofunktioita, joko määrittelyikkunassa (ja paina ”run”), tai interaktioikkunassa (ja paina <enter>).
3
(circle 100 "solid" "red”)
100
4
(rectangle 200 100 ”solid” ”blue”)
200
100
5
(triangle 100 ”solid” ”yellow”)
100
100
6
(square 100 ”outline” ”green”)
100
100
7
(right-triangle 100 200 ”outline” ”brown”)
100
200
8
2.2 Määrittelyt (define) Määrittelyn avulla voidaan antaa nimi jollekin arvolle. Tämä on erityisen hyödyllistä, jos arvoa käytettään usein.
Esim. Voimme määritellä mittoja kuten SÄDE:
(define SÄDE 50)
Tai kokonaisia kuvia kuten YMPYRÄ:
(define YMPYRÄ (circle SÄDE ”solid” ”red”))
Määrittely kirjoitetaan määrittelyikkunaan ja painetaan ”run”
Määriteltyä nimeä voi nyt käyttää kirjoittamalla SÄDE tai YMPYRÄ interaktioikkunassa ja painamalla <enter>
Isot kirjaimet viittaavat siihen, että tämän arvo ei muutu eli se on VAKIO.
9
(define SUORAKULMIO
)
(rectangle 200 100 ”solid” ”blue”))
10
(define YMPYRÄ
)
(circle 100 ”solid” ”red”))
11
2.3 Yhdistettyjen kuvien piirtäminen
Peruskuvioita saadaan päällekkäin käyttämällä overlay - funktiota
Kuvat saadaan vierekkäin beside-, ja allekkain above – funktion avulla.
12
(overlay SUORAKULMIO YMPYRÄ)
13
(beside SUORAKULMIO YMPYRÄ)
14
(above SUORAKULMIO YMPYRÄ)
15
(overlay/xy SUORAKULMIO 0 0 YMPYRÄ)
(0, 0)
(overlay/xy SUORAKULMIO 100 0 YMPYRÄ)
100
(overlay/xy SUORAKULMIO 0 50 YMPYRÄ)
50
(text ”punainen” 38 ”red”)
(overlay TEKSTI SUORAKULMIO)
19
Koodaushaaste Tee Japanin lippu (define JAPANIN-LIPPU ..)
Tee auto (define AUTO ..)
Vihje: määrittele ensin KORI, RENGAS ja RENKAAT. Käytä näitä, kun teet AUTO:n
20
Lisää koodaushaasteita Tee Suomen lippu (define SUOMEN-LIPPU ..)
Lisää autoosi teksti
21
2.3 Kuvanmuokkausfunktiot
Kuvia voidaan lisäksi leikata, skaalata, kiertää sekä peilata vaaka- ja pystysuunnassa käyttämällä kuvan muokkausfunktioita.
22
(rotate 90 LEHTI)
90°
23
(flip-horizontal NUOLI)
24
(flip-vertical NUOLI)
25
(scale 0.5 NUOLI)
26
(crop 0 0 50 50 YMPYRÄ)(0,0)
50
50
27
KoodaushaasteSuunnittele kuva ja koodaa se. Esittele kuvasi muille ja kerro miten sait sen aikaiseksi.
Lisää piirtofunktioita löydät käsikirjasta:
http://racket.koodiaapinen.fi -> Käsikirja -> Kuvat – 2htdp/image