Close menu
Close menu

Tunnistaudu

Kirjaudu

Etkö ole vielä jäsen?

Liity jäseneksi

Taulukko

Tehdään ohjelma, jossa on viiden solun  kokoine taulukko. Sijoitetaan taulukon jokaiseen soluun yksi kirjain. Solujen numerointi alkaa nollasta, joka on taulukon ensimmäinen solu. Viides ja viimeinen solu on solu numero 4. Oheinen kuva havainnollistaa asiaa.

Tehdään ohjelma, jossa taulukon soluissa olevien kirjainten paikkaa voidaan muuttaa liukupalkkien avulla. Kirjainten vaakasuuntainen väli säädetään muuttujan pituus avulla ja kirjainten pystysuuntainen väli säädetään muuttujan korkeus avulla. Alla oleva kuvaaja havainnollistaa asiaa.


Kokonainen ohjelma on seuraavanlainen.

var taulukko = ["H","E","L","L","O"];           // Perustetaan taulukko
var pituusSlider;                               // Määritellään muuttuja pituusSlider
var korkeusSlider;                              // Määritellään muuttuja korkeusSlider
var kokoSlider;                                 // Määritellään muuttuja kokoSlider
function setup() {
  createCanvas(600, 600);                       // Ikkunan koko
  pituusSlider = createSlider(0, 100, 100);     // Luodaan liukupalkki pituusSlider, joka saa arvoja väliltä 0..100
  pituusSlider.position(20, 20);                // Sijoitetaan pituusSlider liukupalkki paikkaan (20,20)
  korkeusSlider = createSlider(0, 100, 100);    // Luodaan liukupalkki korkeusSlider, joka saa arvoja väliltä 0..100
  korkeusSlider.position(220, 20);              // Sijoitetaan korkeusSlider liukupalkki paikkaan (220,20)
  kokoSlider = createSlider(10, 100, 50);       // Luodaan liukupalkki kokoSlider, joka saa arvoja väliltä 10..100
  kokoSlider.position(420, 20);                 // Sijoitetaan kokoSlider liukupalkki paikkaan (420,20)
}

function draw() {
  background(255,255,0);                        // Tyhjennetään tausta ja väritetään se keltaiseksi
  var pituus = pituusSlider.value();            // Määritellään pituus-muuttuja ja sijoitetaan siihen pituusSlider liukupalkin arvo
  var korkeus = korkeusSlider.value();          // Määritellään korkeus-muuttuja ja sijoitetaan siihen korkeusSlider liukupalkin arvo
  var koko = kokoSlider.value();                // Määritellään koko-muuttuja ja sijoitetaan siihen kokoSlider liukupalkin arvo
  textSize(koko);                               // Asetetaan tekstin koko muuttujan koko-avulla
  for (var a =0; a < taulukko.length; a++) {        // Luodaan for-silmukka, joka käy taulukon solut läpi
     text(taulukko[a],100+pituus*a, 120+korkeus*a); // Tulosta taulukon solut muuttujien pituus, korkeus ja a avulla
  }                                                 // Lopetetaan for-silmukka
}

Kun ajat ohjelman niin se toimii seuraavasti.

Pallon xy-paikka taulukkoon

Katsotaan vielä toisena esimerkkinä kuinka pallon paikka xy-koordinaatistossa voitaisiin tallentaa taulukkoon.

var x = [100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280]; // Vaaka
var y = [100,110,121,133,146,161,177,195,214,236,259,285,314,345,380,417,459,505,556]; // Pysty
function setup() {
     createCanvas(600, 600);  // Ikkunan koko 600 x 600
     fill(0,0,255)            // Täyttöväri eli pallon väri on sininen
}
function draw() {
     background(220,220,0);            // Tyhjennä tausta ja väritä se keltaiseksi
     for (var a=0; a< x.length; a++) { // Käy läpi taulukon y kaikki solut (0,1,2,3,...,length)
          ellipse(x[a],y[a],20,20);    // Piirrä ympyrä paikkaan (x,y)
     }                                 // Lopeta for-silmukka
}

Tässä voit ajatella, että pallon paikan mittaustulokset on tallennettu kahteen eri taulukkoon x ja y. Kun nämä arvot luetaan taulukosta, niin for-silmukan avulla saadaan piirrettyä niin monta palloa kuin on taulukossa arvoja. Kun ohjelma ajetaan, niin nähdään pallon liike.

Kuvasta nähdään, että pallon liike vaakasuunassa on tasaista, mutta pystysuunnassa kiihtyvää. Kuinka pallo saataisiin putoamaan kuvan mukaisesti? Sehän onnistuisi laskuri-muuttujan avulla. Muuta nyt koodi muotoon.

var x = [100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280]; // Vaaka
var y = [100,110,121,133,146,161,177,195,214,236,259,285,314,345,380,417,459,505,556]; // Pysty
var a = 0;   // Muuttuja a on nyt laskuri muuttuja, joka saa alkuarvon 0.
function setup() {
     createCanvas(600, 600); // Ikkunan koko 600 x 600
     fill(0,0,255) // Täyttöväri sininen
     frameRate(10); // Päivitys taajuus 10 Hz = pallon nopeus
}
function draw() {
     background(220,220,0);    // Tyhjennä tausta ja väritä se keltaiseksi
     ellipse(x[a],y[a],20,20); // Piirrä ympyrä paikkaan (x,y)
     a++;                      // Kasvata laskuria yhdellä
     if (a == x.length) {      // Jos taulukon loppu on saavutettu, niin 
          a = 0;               // nollaa laskuri
     }                         // Lopeta if-lause
}

Tärkeintä tässä on laittaa laskurin lisäyksen (a++;) jälkeen if-lause, jolla tarkastetaan, että onko taulukon maksimi-koko saavutettu, jolloin nollataan laskuri muuttuja ja animaatio alkaa alusta. Jos tätä ehtoa ei olisi, niin koko ohjelma kaatuisi siinä vaiheessa, kun mentäsiin yli viimeisen solun. Voit kopioida koodin ohjelmointiympäristöön ja testata sen.