Close menu
Close menu

Tunnistaudu

Kirjaudu

Etkö ole vielä jäsen?

Liity jäseneksi

Muuttujat

Muuttuja on ohjelmassa muistipaikka, johon ohjelman suorituksen aikainen tieto voidaan tallentaa. Ohjelmassa käytettävät muuttujat on esiteltävä ohjelmassa ennen kuin niitä voi käyttää. Jos esittely tapahtuu draw()-lohkossa, niin muuttujat ovat vain voimassa draw()-lohkossa. Mutta jos muuttujat määrittelee heti ohjelman alussa, niin silloin muuttujat ovat voimassa koko ohjelman ajan. Tällöin sanotaan, että kyseessä on ns. globaalimuuttuja. Muuttuja (= variable) esitellään komennolla

var muuttujan_nimi

jonka jälkeen muuttujalle voidaan tallentaa tietoa. Tallennettava tieto voi olla kokonaisluku (integer), desimaaliluku (float), merkkijono (String), merkki (char) tai totuusarvo (boolean). P5.js ohjelmassa ei erikseen määritellä tietotyyppiä, joten ohjelmaa kirjoitettaessa on oltava tarkkana minkälaista tietoa muuttujiin on tallennettu. Esimerkiksi, jos muuttuja saa arvoksi merkkijono-tietoa ja sitten samaa muuttujaa on käytetty laskutoimituksissa, niin ohjelman suoritus antaa virheilmoituksen, koska merkkijonoilla ei voi laskea. Muuttujalle voidaan tallentaa tietoa komennolla:

muuttujan_nimi = muuttujan_arvo;

Yleensä tapana on yhdistää muuttujan määrittely ja sijoittaminen samaan lauseeseen. Katsotaan tästä esimerkki. Määritellään kolme muuttujaa x, y ja halkaisija. Muuttujaan x tallennetaan ympyrän keskipisteen vaakasuuntainen paikka, muuttujaan y tallennetaan ympyrän keskipisteen pystysuuntainen paikka ja muuttujaan halkaisija tallennetaan ympyrän halkaisija. Tehdään muuttujien avulla siis ohjelma, joka piirtää ympyrän, jonka halkaisija on 300 ja ympyrän keskipiste on paikassa (200,250). Ohjelma on seuraavanlainen.

function setup() {
  createCanvas(500, 500);  // Ikkunan koko 500x500
}

function draw() {
  background(200,150,0);              // Taustaväri
  fill(0,0,255);                      // Täyttöväri sininen
  var x = 200;                        // Määritellään muuttuja x ja annetaan sille arvo 200
  var y = 250;                        // Määritellään muuttuja y ja annetaan sille arvo 250
  var halkaisija = 300                // Määritellään muuttuja halkaisija ja annetaan sille arvo 300
  ellipse(x,y,halkaisija,halkaisija); // Piirretään ympyrä
}

Lopputulos näyttää tältä.

Muuttujat kannattaa nimetä kuvaavasti. Nimeämisessä on kuitenkin joitain rajoituksia.

  • Käytä nimissä kirjaimia a….z ja numeroita 0..9. Ääkköset: ä, ö ja å eivät ole suositeltuja. Esimerkiksi säde on huono muuttujan nimi, parempi on sade.
  • Älä käytä välilyöntiä muuttujan nimissä. Sitä vastoin voit käyttää alaviivaa. Esimerkiksi et voi käyttää muuttujan nimessä sanaa: pohjan säde, vaan käytä muotoa: pohjan_sade.
  • Erikoismerkit eivät yleensä ole sallittuja muuttujien nimissä, kuten esimerkiksi %, &, /, (, ),…

 

Liukupalkki

Muuttujan arvo voi muuttua ohjelman suorituksen aikana. Muuttujaan voi vain tallentaa yhden arvon kerrallaan. Kun muuttujaan tallennetaan uusi arvo, niin vanha arvo häviää. P5JS-ohjelmoinnissa on käytössä liukupalkki, jonka arvo voidaan välittää muuttujalle. Aluksi määrittelemme liukupalkille oman muuttujan heti ohjelman alussa komennolla:

var liukupalkin_nimi;

Jonka jälkeen liukupalkki määritellään setup-lohkossa komennoilla:

Liukupalkin_nimi = createSlider(min,max,arvo);

Samalla liukupalkki sijoitetaan paikkaan (x,y) komennolla:

Liukupalkin_nimi.position(x,y); 

Liukupalkin määrittely ja sijoittaminen ikkunaan tehdään vain kerran eli siksi nämä komennot on laittettava setup()-lohkoon. Kun muuttuja lukee liukupalkin arvon draw()-lohkossa, niin se voidaan kirjoittaa muodossa:

var muuttuja = Liukupalkin_nimi.value(); 

Tehdään edellinen esimerkki uudestaan käyttäen liukupalkkeja.

var aSlider;                             // Määritellään muuttuja aSlider
var bSlider;                             // Määritellään muuttuja bSlider
var cSlider;                             // Määritellään muuttuja cSlider
function setup() {
  createCanvas(600, 600);                // Ikkunan koko 600x600
  aSlider = createSlider(0, 600, 300);   // Luodaan liukupalkki aSlider, jonka minimi arvo on 0 ja maksimi arvo on 600
  aSlider.position(10, 20);              // Sijoitetaan liukupalkki aSlider paikkaan (10,20).
  bSlider = createSlider(0, 600, 300);   // Luodaan liukupalkki bSlider, jonka minimi arvo on 0 ja maksimi arvo on 600
  bSlider.position(210, 20);             // Sijoitetaan liukupalkki bSlider paikkaan (10,20).
  cSlider = createSlider(0, 600, 100);   // Luodaan liukupalkki cSlider, jonka minimi arvo on 0 ja maksimi arvo on 600
  cSlider.position(410, 20);             // Sijoitetaan liukupalkki cSlider paikkaan (10,20).
}

function draw() {
  background(200,150,0);                 // Taustaväri
  fill(0,0,255);                         // Täyttöväri sininen
  var x = aSlider.value();               // Määritellään muuttuja x, joka saa arvon liukupalkilta: aSlider
  var y = bSlider.value();               // Määritellään muuttuja y, joka saa arvon liukupalkilta: bSlider
  var halkaisija = cSlider.value();      // Määritellään muuttuja halkaisija, joka saa arvon liukupalkilta: cSlider
  ellipse(x,y,halkaisija,halkaisija);    // Piirretään ympyrä muuttujien avulla.
}

Kokeile muuttaa liukupalkin arvoja. Mitä huomaat.

Liukupalkki ja random-komento

Tehdään ohjelma, jossa arvotaan satunnaiseen paikkaa satunnaisella värillä ympyröitä. Lisätään ohjelmaan neljä liukupalkkia. Ensimmäisellä liukupalkilla säädetään ympyrän reunaviivan paksuus. Toisella liukupalkilla säädetään ympyrän halkaisija. Kolmannella liukupalkilla säädetään reunaviivan läpinäkyvyys ja neljännellä liukupalkilla säädetään täyttövärin läpinäkyvyys. Muuten ympyrän paikka ja väri arvotaan satunnaisesti. Kokonainen ohjelma on seuraavanlainen.

var aSlider;     // Määritellään muuttuja aSlider 
var bSlider;     // Määritellään muuttuja bSlider
var cSlider;     // Määritellään muuttuja cSlider
var dSlider;     // Määritellään muuttuja dSlider
function setup() {
  createCanvas(600, 600);               // Laitetaan ikkunan kooksi 600 x 600
  aSlider = createSlider(0, 300, 100);  // Luodaan liukupalkki aSlider, jonka minimi arvo on 0 ja maksimi arvo on 300
  aSlider.position(10, 20);             // Sijoitetaan liukupalkki aSlider paikkaan (10,20)
  bSlider = createSlider(10, 300, 0);   // Luodaan liukupalkki bSlider, jonka minimi arvo on 0 ja maksimi arvo on 300
  bSlider.position(160, 20);            // Sijoitetaan liukupalkki bSlider paikkaan (160,20)
  cSlider = createSlider(10, 255, 100); // Luodaan liukupalkki cSlider, jonka minimi arvo on 0 ja maksimi arvo on 255
  cSlider.position(310, 20);            // Sijoitetaan liukupalkki cSlider paikkaan (310,20)
  dSlider = createSlider(10, 255, 100); // Luodaan liukupalkki dSlider, jonka minimi arvo on 0 ja maksimi arvo on 255
  dSlider.position(460, 20)             // Sijoitetaan liukupalkki dSlider paikkaan (460,20)
  background(200,150,0);                // Tyhjennetään tausta
}

function draw() {
  var koko1 = aSlider.value();          // Luodaan muuttuja: koko1 ja annetaan sille arvo liukupalkista aSlider
  var koko2 = bSlider.value();          // Luodaan muuttuja: koko2 ja annetaan sille arvo liukupalkista bSlider
  var vari1 = cSlider.value();          // Luodaan muuttuja: vari1 ja annetaan sille arvo liukupalkista cSlider
  var vari2 = dSlider.value();          // Luodaan muuttuja: vari2 ja annetaan sille arvo liukupalkista dSlider
  strokeWeight(koko1);                  // Viivan paksuus
  stroke(random(255),random(255), random(255), random(vari1));  // Satunnainen reunaviivan väri
  fill(random(255),random(255), random(255), random(vari2));    // Satunnainen täyttöväri
  ellipse(random(width),random(height),koko2,koko2);            // Piirrä ympyrä
}

Ohjelman suoritus näyttää tältä.