For loops and if statements
Lecture slides
https://slides.com/otso_havanto/programming-for-visual-artists-5/embed
If statements
What's the output of the following program?
Wrong answer
For loops
Introduction to for-loops
What's the output of the following program?
Wrong answer
Example: Line and circle with for loops
Line with for loop
function setup() {
createCanvas(windowWidth, windowHeight);
strokeWeight(5);
}
function draw() {
background(255);
for (let x = 0; x < width; x += 10) {
point(x, height / 2);
}
}
Line with for loop and noise
function setup() {
createCanvas(windowWidth, windowHeight);
strokeWeight(5);
}
function draw() {
background(255);
for (let x = 0; x < width; x += 10) {
let y = map(
noise(x / 100, frameCount / 100),
0,
1,
height / 2 - height * 0.25,
height / 2 + height * 0.25
);
point(x, y);
}
}
Circle with for loop
function setup() {
createCanvas(windowWidth, windowHeight);
strokeWeight(5);
}
function draw() {
background(255);
for (let a = 0; a < TWO_PI; a += 0.1) {
let x = width / 2 + cos(a) * height * 0.25;
let y = height / 2 + sin(a) * height * 0.25;
point(x, y);
}
}
Circle with for loop and noise
function setup() {
createCanvas(windowWidth, windowHeight);
strokeWeight(5);
}
function draw() {
background(255);
for (let a = 0; a < TWO_PI; a += 0.1) {
let r = map(noise(a, frameCount / 100), 0, 1, height * 0.1, height * 0.25);
let x = width / 2 + cos(a) * r;
let y = height / 2 + sin(a) * r;
point(x, y);
}
}
How to get rid of the offset between first and last point: Polar Perlin Noise Loops
Geometric composition with for-loops
Assignment
Option 1:
Use the examples in the last video for creating a generative composition. If you want, you can use the following rules to get started:
- Pick two colors
- Create clusters of shapes with four loop using only one 2d-primitive
- Stop draw loop with
noLoop();
after a certain frame - Generate the two colors with code
Example sketch with the rules above: https://editor.p5js.org/otsohavanto/sketches/GJREg3-C8
Option 2:
See the Wave Clock example by Matt Pearson on the lecture slides. Try to create a similar composition with your own code. You can start with the Circle with for loop and noise example. Experiment by drawing other primitives than point
, such as line
or other 2d shape primitives based on the generated coordinates and use angle, coordinates and/or noise to modify properties (such as color, size, rotation, etc.) of the shapes.
One possible idea to explore would be to take something such as Epitrochoid, draw it using a for loop and vertices and then use noise to modify the shape.
Submit a link to you sketch on MyCourses.