Kolme noppaa ja Zip-komento

Millä todennäköisyydellä kolmea noppaa heitettäessä saadaan summaksi 10? Havainnollistetaan tilannetta kolmiulotteisesti käyttämällä GeoGebran listoihin liittyviä komentoja. Teen sovellukseni GeoGebra 5:llä ja komennot kirjoitan Syöttökenttään.

Luodaan ensin kaikki tulosvaihtoehdot pisteiksi kolmiulotteiseen koordinaatistoon käyttämällä kolmea sisäkkäistä Jono-komentoa. Jos tämän kirjoittaa käsin, niin kannattaa ensin kirjoittaa

Jono( <Lauseke>, <Muuttuja>, <Alkuarvo>, <Loppuarvo> )

ja sen jälkeen <Lauseke> korvata uudella Jono-komennolla tyyliin

Jono( Jono( <Lauseke>, <Muuttuja>, <Alkuarvo>, <Loppuarvo> ),<Muuttuja>, <Alkuarvo>, <Loppuarvo> )

ja sen jälkeen vielä kerran samalla tavalla

Jono( Jono( Jono( <Lauseke>, <Muuttuja>, <Alkuarvo>, <Loppuarvo> ), <Muuttuja>, <Alkuarvo>, <Loppuarvo> ), <Muuttuja>, <Alkuarvo>, <Loppuarvo> )

Lopuksi täytetään muut muuttujien kohdat ja annetaan lista nimeksi pisteet. Lopullinen komento on

pisteet = Jono(Jono(Jono((aa, bb, cc), aa, 1, 6), bb, 1, 6), cc, 1, 6)

Komento tuottaa kuusi listaa, jossa on kaikki 6·6·6 = 216 pistettä.

pisteet = {{{(1, 1, 1), (2, 1, 1), (3, 1, 1), (4, 1, 1), (5, 1, 1), (6, 1, 1)}, {(1, 2, 1), (2, 2, 1), (3, 2, 1), (4, 2, 1), (5, 2, 1), (6, 2, 1)}, {(1, 3, 1), (2, 3, 1), (3, 3, 1), (4, 3, 1), (5, 3, 1), (6, 3, 1)}, {(1, 4, 1), (2, 4, 1), (3, 4, 1), (4, 4, 1), (5, 4, 1), (6, 4, 1)}, {(1, 5, 1), (2, 5, 1), (3, 5, 1), (4, 5, 1), (5, 5, 1), (6, 5, 1)}, {(1, 6, 1), (2, 6, 1), (3, 6, 1), (4, 6, 1), (5, 6, 1), (6, 6, 1)}}, {{(1, 1, 2), (2, 1, 2), (3, 1, 2), (4, 1, 2), (5, 1, 2), (6, 1, 2)}, {(1, 2, 2), (2, 2, 2), (3, 2, 2), (4, 2, 2), (5, 2, 2), (6, 2, 2)}, {(1, 3, 2), (2, 3, 2), (3, 3, 2), (4, 3, 2), (5, 3, 2), (6, 3, 2)}, {(1, 4, 2), (2, 4, 2), (3, 4, 2), (4, 4, 2), (5, 4, 2), (6, 4, 2)}, {(1, 5, 2), (2, 5, 2), (3, 5, 2), (4, 5, 2), (5, 5, 2), (6, 5, 2)}, {(1, 6, 2), (2, 6, 2), (3, 6, 2), (4, 6, 2), (5, 6, 2), (6, 6, 2)}}, {{(1, 1, 3), (2, 1, 3), (3, 1, 3), (4, 1, 3), (5, 1, 3), (6, 1, 3)}, {(1, 2, 3), (2, 2, 3), (3, 2, 3), (4, 2, 3), (5, 2, 3), (6, 2, 3)}, {(1, 3, 3), (2, 3, 3), (3, 3, 3), (4, 3, 3), (5, 3, 3), (6, 3, 3)}, {(1, 4, 3), (2, 4, 3), (3, 4, 3), (4, 4, 3), (5, 4, 3), (6, 4, 3)}, {(1, 5, 3), (2, 5, 3), (3, 5, 3), (4, 5, 3), (5, 5, 3), (6, 5, 3)}, {(1, 6, 3), (2, 6, 3), (3, 6, 3), (4, 6, 3), (5, 6, 3), (6, 6, 3)}}, {{(1, 1, 4), (2, 1, 4), (3, 1, 4), (4, 1, 4), (5, 1, 4), (6, 1, 4)}, {(1, 2, 4), (2, 2, 4), (3, 2, 4), (4, 2, 4), (5, 2, 4), (6, 2, 4)}, {(1, 3, 4), (2, 3, 4), (3, 3, 4), (4, 3, 4), (5, 3, 4), (6, 3, 4)}, {(1, 4, 4), (2, 4, 4), (3, 4, 4), (4, 4, 4), (5, 4, 4), (6, 4, 4)}, {(1, 5, 4), (2, 5, 4), (3, 5, 4), (4, 5, 4), (5, 5, 4), (6, 5, 4)}, {(1, 6, 4), (2, 6, 4), (3, 6, 4), (4, 6, 4), (5, 6, 4), (6, 6, 4)}}, {{(1, 1, 5), (2, 1, 5), (3, 1, 5), (4, 1, 5), (5, 1, 5), (6, 1, 5)}, {(1, 2, 5), (2, 2, 5), (3, 2, 5), (4, 2, 5), (5, 2, 5), (6, 2, 5)}, {(1, 3, 5), (2, 3, 5), (3, 3, 5), (4, 3, 5), (5, 3, 5), (6, 3, 5)}, {(1, 4, 5), (2, 4, 5), (3, 4, 5), (4, 4, 5), (5, 4, 5), (6, 4, 5)}, {(1, 5, 5), (2, 5, 5), (3, 5, 5), (4, 5, 5), (5, 5, 5), (6, 5, 5)}, {(1, 6, 5), (2, 6, 5), (3, 6, 5), (4, 6, 5), (5, 6, 5), (6, 6, 5)}}, {{(1, 1, 6), (2, 1, 6), (3, 1, 6), (4, 1, 6), (5, 1, 6), (6, 1, 6)}, {(1, 2, 6), (2, 2, 6), (3, 2, 6), (4, 2, 6), (5, 2, 6), (6, 2, 6)}, {(1, 3, 6), (2, 3, 6), (3, 3, 6), (4, 3, 6), (5, 3, 6), (6, 3, 6)}, {(1, 4, 6), (2, 4, 6), (3, 4, 6), (4, 4, 6), (5, 4, 6), (6, 4, 6)}, {(1, 5, 6), (2, 5, 6), (3, 5, 6), (4, 5, 6), (5, 5, 6), (6, 5, 6)}, {(1, 6, 6), (2, 6, 6), (3, 6, 6), (4, 6, 6), (5, 6, 6), (6, 6, 6)}}} 

Paremman havainnollistuksen saa, kun katsoo listaa CAS-ikkunassa.

3D-piirtoalueella lista pisteet näyttää tältä.

Listan pisteet pituus on kuusi. Luodaan yksi lista, jossa pisteet ovat peräkkäin listana käyttämällä Tiivistä-komentoa. Se ikään kuin poistaa ylimääräiset sulkeet eli tässä tapauksessa turhat listat.

kaikki = Tiivistä(pisteet)
kaikki = {(1, 1, 1), (2, 1, 1), (3, 1, 1), (4, 1, 1), (5, 1, 1), (6, 1, 1), (1, 2, 1), (2, 2, 1), (3, 2, 1), (4, 2, 1), (5, 2, 1), (6, 2, 1), (1, 3, 1), (2, 3, 1), (3, 3, 1), (4, 3, 1), (5, 3, 1), (6, 3, 1), (1, 4, 1), (2, 4, 1), (3, 4, 1), (4, 4, 1), (5, 4, 1), (6, 4, 1), (1, 5, 1), (2, 5, 1), (3, 5, 1), (4, 5, 1), (5, 5, 1), (6, 5, 1), (1, 6, 1), (2, 6, 1), (3, 6, 1), (4, 6, 1), (5, 6, 1), (6, 6, 1), (1, 1, 2), (2, 1, 2), (3, 1, 2), (4, 1, 2), (5, 1, 2), (6, 1, 2), (1, 2, 2), (2, 2, 2), (3, 2, 2), (4, 2, 2), (5, 2, 2), (6, 2, 2), (1, 3, 2), (2, 3, 2), (3, 3, 2), (4, 3, 2), (5, 3, 2), (6, 3, 2), (1, 4, 2), (2, 4, 2), (3, 4, 2), (4, 4, 2), (5, 4, 2), (6, 4, 2), (1, 5, 2), (2, 5, 2), (3, 5, 2), (4, 5, 2), (5, 5, 2), (6, 5, 2), (1, 6, 2), (2, 6, 2), (3, 6, 2), (4, 6, 2), (5, 6, 2), (6, 6, 2), (1, 1, 3), (2, 1, 3), (3, 1, 3), (4, 1, 3), (5, 1, 3), (6, 1, 3), (1, 2, 3), (2, 2, 3), (3, 2, 3), (4, 2, 3), (5, 2, 3), (6, 2, 3), (1, 3, 3), (2, 3, 3), (3, 3, 3), (4, 3, 3), (5, 3, 3), (6, 3, 3), (1, 4, 3), (2, 4, 3), (3, 4, 3), (4, 4, 3), (5, 4, 3), (6, 4, 3), (1, 5, 3), (2, 5, 3), (3, 5, 3), (4, 5, 3), (5, 5, 3), (6, 5, 3), (1, 6, 3), (2, 6, 3), (3, 6, 3), (4, 6, 3), (5, 6, 3), (6, 6, 3), (1, 1, 4), (2, 1, 4), (3, 1, 4), (4, 1, 4), (5, 1, 4), (6, 1, 4), (1, 2, 4), (2, 2, 4), (3, 2, 4), (4, 2, 4), (5, 2, 4), (6, 2, 4), (1, 3, 4), (2, 3, 4), (3, 3, 4), (4, 3, 4), (5, 3, 4), (6, 3, 4), (1, 4, 4), (2, 4, 4), (3, 4, 4), (4, 4, 4), (5, 4, 4), (6, 4, 4), (1, 5, 4), (2, 5, 4), (3, 5, 4), (4, 5, 4), (5, 5, 4), (6, 5, 4), (1, 6, 4), (2, 6, 4), (3, 6, 4), (4, 6, 4), (5, 6, 4), (6, 6, 4), (1, 1, 5), (2, 1, 5), (3, 1, 5), (4, 1, 5), (5, 1, 5), (6, 1, 5), (1, 2, 5), (2, 2, 5), (3, 2, 5), (4, 2, 5), (5, 2, 5), (6, 2, 5), (1, 3, 5), (2, 3, 5), (3, 3, 5), (4, 3, 5), (5, 3, 5), (6, 3, 5), (1, 4, 5), (2, 4, 5), (3, 4, 5), (4, 4, 5), (5, 4, 5), (6, 4, 5), (1, 5, 5), (2, 5, 5), (3, 5, 5), (4, 5, 5), (5, 5, 5), (6, 5, 5), (1, 6, 5), (2, 6, 5), (3, 6, 5), (4, 6, 5), (5, 6, 5), (6, 6, 5), (1, 1, 6), (2, 1, 6), (3, 1, 6), (4, 1, 6), (5, 1, 6), (6, 1, 6), (1, 2, 6), (2, 2, 6), (3, 2, 6), (4, 2, 6), (5, 2, 6), (6, 2, 6), (1, 3, 6), (2, 3, 6), (3, 3, 6), (4, 3, 6), (5, 3, 6), (6, 3, 6), (1, 4, 6), (2, 4, 6), (3, 4, 6), (4, 4, 6), (5, 4, 6), (6, 4, 6), (1, 5, 6), (2, 5, 6), (3, 5, 6), (4, 5, 6), (5, 5, 6), (6, 5, 6), (1, 6, 6), (2, 6, 6), (3, 6, 6), (4, 6, 6), (5, 6, 6), (6, 6, 6)}

Listan kaikki pituus on 216.

Jotta saamme ongelmastamme hieman yleisemmän, luodaan liuku n. siten, että se saa kokonaislukuarvoja välillä [1, …, 20]. Tuossa on pari ylimääräistä lukua, mutta ne toiminevat tarkastuksena, että menetemä on oikea. Kirjoitetaan syöttökenttään

n = 10

ja klikataan Algebra-ikkunassa sen vasemmalla puolella olevaan pallukkaan. Klikkaamalla liukua hiiren oikealla painikkeella saadaan ominaisuudet ja Liukusäädin ikkunassa:

Seuraavaksi selvitetään, millä kaikki-listan pistellä summa on yhtä suuri kuin n.

Tässäkin voisi käyttää sisäkkäisiä jono-komentoja, mutta ehkä tyylikkäämpää on käyttää Zip-komentoa. Komennon yleinen syntaksi on seuraava

Zip( <Lauseke>, <Muuttuja1>, <Lista1>, <Muuttuja2>, <Lista2>, ... )

Selvennetään Zip-komentoa esimerkillä. Jos lista A = {1, 2, 3} ja B = {4, 5, 6, 7}, niin komento

testi = Zip((a, b), a, A, b, B)

tuottaa listan 

testi = {(1, 4), (2, 5), (3, 6)} 

Komennossa a on listan A alkioihin liittyvä sisäinen muuttuja ja b liittyy B:n alkioihin. Tässä tapauksessa (a, b) tuottaa pisteitä siten, että ensin otetaan ensimmäinen alkio A:sta ja ensimmäinen B:stä eli (1, 4), sitten toiset alkiot eli (2, 5) ja sitten kolmannet (3, 6). Nyt kaikki A:n alkiot on käyty läpi ja ei tuoteta lisää pisteitä. Yleisesti tällä komennolla voidaan suorittaa komentoja useille listoille. Syntyvän listan pituuden määrittää lyhin lista. Itse käytän Zipiä useimmiten, kun haluan käydä yhden listan kaikki alkiot kerralla. 

Luodaan lista suotuisille tapauksille. Sisäinen muuttuja a käy läpi kaikki-listan alkiot. Jos-ehdon sisällä x(a) + y(a) + z(a) laskee a-pisteen koordinaattien summan.

suo = Zip(Jos(x(a) + y(a) + z(a) == n, a), a, kaikki)

tuottaa listan

suo = {(?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (6, 3, 1), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (5, 4, 1), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 5, 1), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 6, 1), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (6, 2, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (5, 3, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 4, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 5, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 6, 2), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (6, 1, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (5, 2, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 3, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 4, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 5, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (1, 6, 3), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (5, 1, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 2, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 3, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 4, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (1, 5, 4), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (4, 1, 5), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 2, 5), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 3, 5), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (1, 4, 5), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (3, 1, 6), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (2, 2, 6), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (1, 3, 6), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?)} 

Noista määrittelemättömistä pisteistä (?, ?, ?) pääsee eroon komenolla

suotuisat = PoistaMäärittelemätön(suo)
suotuisat = {(6, 3, 1), (5, 4, 1), (4, 5, 1), (3, 6, 1), (6, 2, 2), (5, 3, 2), (4, 4, 2), (3, 5, 2), (2, 6, 2), (6, 1, 3), (5, 2, 3), (4, 3, 3), (3, 4, 3), (2, 5, 3), (1, 6, 3), (5, 1, 4), (4, 2, 4), (3, 3, 4), (2, 4, 4), (1, 5, 4), (4, 1, 5), (3, 2, 5), (2, 3, 5), (1, 4, 5), (3, 1, 6), (2, 2, 6), (1, 3, 6)} 

Listan suotuisat pituus on 27, niinpä summan 10 todennäköisyys on 27/216 = 1/8.

Valmis appletti löytyy sivulta https://www.geogebra.org/m/rdhryznv

Dodekaedri 3D-tulostukseen GeoGebralla

Koulussani on jo muutaman vuoden ollut Minifactory 3D-tulostin. Alkuinnostuksen jälkeen en ole siihen juurikaan koskenut. Koulunkäyntiavustajamme Victor Micordia sääti laitteen viimeisen päälle kuntoon ja otti haltuun itse tulostustapahtuman. Niinpä minä innostuin uudestaan kokeilemaan tulostusta. Varsinkin kun mallin voi luoda GeoGebralla. GeoGebran 3D ohjelmasta voi tallentaa kappaleen tiedot slt-tiedostoon, joka ladataan tulostinta ohjaavaan ohjelmistoon.

Kolme vasemmanpuoleista ovat GeoGebra 3D sivun demomalleja. Oikeanpuoleinen on tuotettu näytön GeoGebra-tiedostosta.

Pentagrammeja dodekaedrin tahkoille Zip-komennolla

Kokeilin ensin dodekaedrin 3D-tulostusta. Kun se onnistui, päätin tuottaa dodekaedrin tahkoille pentagrammit. Esitän seuraavassa miten sen tein. Koska olen tottunut GeoGebra 5:n käyttöön esitän ratkaisuni sen kanssa. Kaikki komennot kirjoitetaan Syöttökenttään.

Avataan GeoGebra 5 ja valitaan Algebra, Piirtoalue, 3D-piirtoalue ja Syöttökenttä. Luodaan kaksi pistettä piirtoalueelle.

A = (0,1)
B = (-cos(18°), sin(18°))

Säännöllinen viisikulmio saadaan Piirtoalueen Säännöllinen monikulmio -työkalulla. Valitaan Säännöllinen monikulmio -työkalu ja tämän jälkeen pisteet A ja B tässä järjestyksessä ja Kärkipisteiden lukumäärä-kenttään kirjoitetaan 5. Saman olisi saanut aikaan myös komennolla

Monikulmio(A, B, 5)

GeoGebra loi Piirtoalueelle ja 3D-piirtoalueelle xy-tasoon säännöllisen viisikulmion nimeltä kuvio1.

Lopullisessa dodekaedrissä on 12 tahkoa, joten tarvitaan 12 pentagrammia. Käsin niiden piirtäminen 3D avaruudessa olisi aika aikaa vievää. Laiska kun olen, niin päätin ratkaista ongelman ohjelmallisesti. Piste-komennon avulla saa pisteen monikulmion reunajanoille. Esimerkiksi komento

Piste(kuvio1, 0.3)

luo pisteen viisikulmion ABCDE kehälle. Jälkimmäinen muuttuja saa arvoja välillä [0, 1]. Alle nollan ja yli ykkösen olevat arvot luovat tuottavat A-pisteen. Arvo 0 tai 1 vastaa pistettä A. Komento laskee koko murtoviivan ABCDEA pituuden ja määrittää syntyvän pisteen paikan suhteessa tähän murtoviivaan. Niinpä esimerkkimme piste tulee olemaan janan BC keskipisteessä, sillä 0,3 = 3·1/5. Näin ollen pentagrammin kärkipisteet järjestyksessä A, C, E, B, D saataisiin kuvio1:stä Piste-komennolla käyttämällä jälkimmäiselle muuttujalle arvoja 0, 2/5, 4/5, 6/5 – 1 ja 8/5 – 1. Ykkönen pitää vähentää kahdessa viimeisessä, sillä muutoin arvot ovat yli ykkösen. Niinpä tarvitsemme luvun desimaaliosaa, sen saa GeoGebrassa floor()-funktiolla. Jono-komennolla pentagrammi syntyy seuraavalla tavalla. Kehotan lukijaa pohtimaan miksi.

Monikulmio(Jono(Piste(kuvio1,(2*n/5)-floor(2*n/5)), n, 1, 5))

Tämä on aika hankala tapa tuottaa viisikantoja, mutta nytpä sekin osataan.

Tässä vaiheessa voi monikulmiot kuvio1 ja kuvio2 piilottaa näkyviltä, etteivät ne unohdu lopulliseen tuotokseen niin kuin minulle kävi tätä tehtäessä ensimmäisen kerran. Samalla kannattaa laittaa Asetukset-valikosta Nimeäminen pois, jotta dodekaedriä luotaessa ei kuvaan ilmesty runsaasti tahkojen ja janojen nimiä.

Dodekaedri syntyy komennolla

Dodekaedri(A, B, C)

Jos edellisessä komennossa käyttää vain kahta pistettä, niin ohjelma toki luo dodekaedrin, mutta silloin ei voi varmasti tietää mihin suuntaan avaruudessa monitahokas syntyy. 3D-piirtoalueelle syntyy dodekaedri nimeltä a, samalla Algebra-ikkunassa näkyy runsaasti uusia pisteitä, janoja ja tahkoja.

Nyt viimeistään kannattaa muuttaa Algebra-ikkunan näkymäasetuksia. Algebra-ikkunan yläreunassa on kääntyvä kolmia. Sen kääntämällä ilmestyy kolme painiketta, joista keskimmäisen Järjestä: -painikkeen avulla saa Algebra-ikkunan järjestettyä Objektin tyypin mukaan.

tässä tuo keltainen Pallo-työkalun ohje unohtui päälle

Tämän tyyppisten rakennelmien kanssa puuhastellessa toivoisi, että GeoGebrassa olisi komento, jonka avulla saisi dodekaedrin tahkojen nimet yhdeksi listaksi. Valitettavasti tällaista komentoa ei ole. Niinpä täytyy hieman improvisoida. Kun Algebra-ikkunassa siirrytään tarpeeksi alas, niin sieltä löytyvät Viisikulmiot ryhmiteltynä alakkain. Kopioidaan nimet ctrl-c (Macissä cmd-c) näppäinkomennolla. Avataan jokin tekstinkäsittelyohjelma, vaikkapa Texturi iOS:ssä. Valitaan hiirellä toisen rivin t-kirjaimen vasemmalta puolelta ensimmäisen rivin G-kirjaimen oikealle puolelle ja kopioidaan valinta. Valitaan Muokkaa-valikosta Etsi ja korvaa… Sijoitetaan valinta Etsi-kohtaan ja Korvaa-kohtaan kirjoitetaan:  ”␣,”eli ”välilyönti pilkku” ilman lainausmerkkejä.

Sijoittamalla saatu tekstikappale aaltosulkeiden sisälle ilman viimeistä pilkkua voidaan GeoGebrassa määritellä lista nimeltä tahkot

tahkot = {tahkoABCFG, tahkoABHML, tahkoAGKQL, tahkoBCINH, tahkoCFJOI, tahkoFGKPJ, tahkoHMRSN, tahkoINSTO, tahkoJOTUP, tahkoKPUVQ, tahkoLMRVQ, tahkoRSTUV}

Muutetaan tahkojen väri läpinäkyväksi. Valitaan Algebra-ikkunasta dodekaedri a ja 3D-piirtoalueen vasemmasta yläkulmasta läpinäkyvyysliuku vasempaan reunaan.

Pentagrammit voisi luoda yhdellä kertaa käyttämällä Jono-komentoa vuorotellen jokaiseen tahkot-listan alkioon. Tehdään sama asia Zip-komennolla. Zip( lauseke, muuttuja, lista) suorittaa listan jokaiselle alkiolle lauseke-kohdassa olevaan komennon, käyttäen lausekkeessa muuttujana muuttujaa. Olipa yksinkertainen virke. Suoritetaan aiemmin kehitelty Monikulmio(Jono(Piste(kuvio1,(2*n/5)-floor(2*n/5)), n, 1, 5))  -komento tahkot -listan jokaiselle tahkolle komennolla

Zip(Monikulmio(Jono(Piste(tahko,(2*n/5)-floor(2*n/5)), n, 1, 5)), tahko, tahkot)

Kappale on nyt tulostusta vaille valmis.

Palataan 3D-tulostukseen seuraavassa tarinassa.

GeoGebra-tiedosto GeoGebra Materiaaleissa https://ggbm.at/qp3mjhee

Lisää aiheeseen liittyvä luettavaa