Bezierkurven
Enkel kurve
Det Processing tilbyr oss er en kurve som er bestemt av 4 styrepunkter. Kurven starter i det første sstyrepunktet og ender i det fjerde. De to andre påvirker kurven(drar i den) med en styrke som avhenger av hvor på kurven vi er. Vi kan matematisk sett lage bezierkurver med mange styrepunkter, men det vanlige når vi skal lage lengere kurver (med flere buktninger) er å skjøte enkle 4-punktskurver der det siste kontrollpunktet i den ene kurvedelen er det første i den neste. Skisssen ser slik ut, og vi kan trekke i de 4 punktene og se hvordan kurven endrer seg:
Skissen:
Posisjoner på kurven
Vi vil betrakte kurven som et perlekjede og plassere noen "perler" lang kurven. For å få til dette må vi kunne finne ut hvor kurven går, i detalj. Logikken bak dette er at når Processing tegner kurven så regnes enkeltpunkter ut basert på påvirkningen fra de 4 styrepunktene. Bezier-kurven er det som kalles en parametrisk kurve og vi kan vandre langs kurven med å la en patameter endre seg i små steg fra 0 til 1. Funksjonen bezierPoint() lar oss bestemme et slikt beregningspunkt. Parameterne er de fire styrepunktene og en verdi mellom 0 og 1. Hvis den siste parameteren er 0 havner vi i det første styrepunktet, og når den er 1 havner vi i det siste. Alle verdier mellom 0 og 1 plasserer oss et sted lang skurve. Når vi regner ut et slikt punkt for hver "perle" vi vil plassere kan det bli seende slik ut:
Skissen:
Animasjon
Ved å endre uttegningen, draw, kan vi lage en animasjon av en kule som løper fram og tilbake langs bezier-kurven.
Skissen:
Lengere kurve
Matematisk kan vi lage formler for å tegne bezierkurver med flere styrepinkter enn fire, og derved få til flere "buktinger". Processing tilbyr oss bare denne 4-punktsløsninen. Vi kan imidlertid skøte kurver ved å la det siste styrepunktet i den enekurven falle sammen med detførste i den neste kurven. Posisjonen til de to nabokurvene bestemmer hvor glatt overgangen fra en kurve til den neste blir.
3D
Tredimensjonal tegning er ikke tema i på denne siden, men det går fint an å lage skisser av denne typen i 3 dimensjoner: