Into to P5 - Part 2

Animations, Interactivity

Process

Refresher on trigonometry and how to use it in the setting of an animation.

1

Animations with P5

A first look at making interactive sketches with mouse and keyboard inputs

2

Interactive Sketches and Inputs

What we covered last time

0

Recap

  • Flow/Structure of a P5 Program
  • Drawing Functions
  • Circle Packing Sketch

Recap

This notion might be important when teaching the students, there's three ways to declare variables in JavaScript:

 

  • var - declared variables exist in the function they were created in
  • let - declared variables only exist in the block they were created in
  • const - once a const variable is assigned a value, it can't be changed later on

Quick Note about Variable Declarations and Scope

Example

if(true){
    let x = 1
    console.log(x)   
 }
 
 console.log(x) 
  • Refresher on Trigonometry
  • Rotating around a Circle
  • Example I - Parametric Shapes
  • Example II - Lava Lamp

Animated Sketches

Trigonometry is super useful when we want to place things along the circumference of a circle - we don't actually need to know the math or anything, just think about it intuitively. It's a very important tool in creative coding!

For example, if we want to draw a circle of points on the canvas, how would we do it? Compute point coordinate with cos() and sin()

Trigonometry Refresher 1

Trigonometry Refresher 2

rad = 100
angle = PI

let x = 200 + rad * cos(angle)
let y = 200 + rad * sin(angle)

strokeWeight(5)
stroke(255,0,0)
point(x, y)
  

Next: How do we animate this?

The easiest way to think about this is that we're converting from cartesian to polar coordinates.

  • Input: any number, automatically mapped to a [0, 2PI] range
  • Output: number in the range [-1, 1]
  • Converts a linear motion into an oscillating motion in the context of animation.

Properties of sin() and cos()

We need a counter to increment the animation and redraw it:

 

  • Manual Increment Counter
  • frame count + frame rate
  • + specific loop length

Animated Rotation

Instead of a simple rotation, we can modify the rotation parameters and modulate them to obtain interesting shapes.

Example I - Parametric Shapes

Example II - Oscillating Lava Lamp

  • Conversion from polar to cartesian coordinates
  • Placement around the circumference of a circle
  • Parametric Shapes
  • Conversion of a linear motion into an oscillating motion
  • Used for Modulation
  • Other sorts of interesting illusions

Conclusion

  • Detecting Mouse and Keyboard Inputs
  • Example I - Drawing without resetting the Canvas
  • Example II - Cursor Effects

Interactive Sketches

Part 2

By Ahmad Moussa

Part 2

  • 66