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.