Stap 5: Basics - spiraal
Nu laten we trekt een spiraal.
Formule
WIDTH = 250; RATIO = 1; X_MIN = -1; X_MAX = 1; Y_MIN = -1; Y_MAX = 1; color rgb(x, y) { float radius = dist(x, y, 0, 0); // (a) Cartesian to polar float angle = atan2(x, y); // (a) Cartesian to polar float value = angle*3 - log(radius)*12; // (b) the spiral float stripe = cos(value); // (c) the smooth stripes float luma = (stripe + 1) * 127; // (d) map to luma range return color(luma); }
Uitleg
(a) omzetten in cartesische coördinaten (x,y) poolcoördinaten (hoek,straal).
(b) het bepalen van de kleur met behulp van de hoek en de logaritme van de straal.
(c) het toepassen van een cosinus om te genereren glad greyscale strepen.
(d) kaart streep (-1 op 1) naar luma bereik (0 tot 255).
Opmerking:
U kunt ook het genereren van zwart-wit (in plaats van greyscaled) strepen door vervanging van de twee lijnen (c) en (d) door dit één:
zweven luma = cos(value) > 0? 0: 255;
Vervolgens merkt hoe de strepen grenzen zijn gekarteld. Niet zo leuk, dus laten we stok met grijstinten!
Oefeningen
- Controleer de spiraal in tegengestelde richting draaien.