Funktiot

Sin, cos ja tan

Tutustuit aiemmin noise-metodiin, jonka tuottamista arvoista pystyit luomaan esimerkiksi orgaanisen näköistä liikettä tai sulavasti väreileviä värejä teostasi varten. Tässä kappaleessa esitellään matematiikasta tutut sin, cos ja tan, joita voi käyttää noise-metodin tapaan.

Processingissa on  mahdollista käyttää muutamaa matematiikastakin tuttua funktiota, jotka on toteutettu ihan tavallisina metodeina Processing-kieleen. Parametreina nämä funktiot ottavat kohdan, josta funktiota luetaan, ja ne palauttavat funktion arvon kyseisessä kohdassa

  • aivan kuten matematiikassa!

Esimerkiksi trigonometrisiä funktioita voi käyttää tuomaan ohjelmaan aaltomaista liikettä.

float s = sin(a);   // sin arvo kohdassa a (a radiaaneja)
float c = cos(a);   // cos arvo kohdassa a
float t = tan(a);   // tan arvo kohdassa a

Allaoleva esimerkki kuvaa sin-funktion toimintaa. Se on lähes identtinen noise-funktion koodiesimerkin kanssa, ja vain rivi, jossa funktiosta saatu arvo muutetaan ruudun koordinaateiksi, on erilainen. Tämä johtuu siitä, että sin-funktio palauttaa arvonaan luvun väliltä [-1, 1] eikä [0, 1].

// määritellään muuttuja seed, aluksi 0
float seed = 0.0;   

void draw(){
// tyhjennetään ruutu joka kierroksella
  background(200);  
// kasvatetaan muuttujan seed arvoa hieman
// voit myös kokeilla muuttaa lisäyksen suuruutta
  seed = seed + 0.01;  

// "mäpätaan" sinin palauttama arvo väliltä [-1, 1]
// välille [0, width] oheisella laskutoimituksella
  float n = (sin(seed)*width/2)+width/2; 

// piirretään viiva (n, 0) ja (n, height) välille
  line(n, 0, n, height);
}

Allaolevassa koodiesimerkissä käytetään myös sin-funktiota, mutta se kuvataan ruudulle hieman eri tavalla.

Lisää esimerkkejä löydät processing.orgista: esimerkiksi sin ja sin ja cosin sekä atan2.