Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
Confluence
/
P5js Lesson 4.2 – Sine function

P5js Lesson 4.2 – Sine function

Jul 30, 2021

This example uses a similar approach to the last example, with a timer at the the reactor being offset by the distance to each node. What other wave functions could be used to generate patterns in this way, and how could it be made more responsive?

 

int gridWidth = 20; 
int gridHeight = 20; 
float shapeWidth = 20; 
float shapeHeight = 20;
float dist_x = 20; 
float dist_y = 20; 
int duration = 100;
int duration2 = 50;
int scaleTimer = 0;
float amplitude = 2;
int xOffset;
int yOffset;
PVector reactorPosition;


void setup() {
 size(800, 800);
 xOffset = floor(width/2-(dist_x*gridWidth/2));
 yOffset = floor(height/2-(dist_y*gridHeight/2));
 reactorPosition = new PVector(0, 0);
 background(255);
 noFill();
};

void draw() {
 background(255);
 scaleTimer++;
 pushMatrix(); //saves current position of the coordinate system
 translate(xOffset, yOffset);//translate grid to center 
 for (int i = 0; i<gridWidth; i++ ) {
 for (int j = 0; j<gridHeight; j++ ) { 

 float reactorDistance = dist(reactorPosition.x, reactorPosition.y, i*dist_x, j*dist_y);
 int myStartTime = int(scaleTimer-reactorDistance);
 float angle = radians(myStartTime)*1.5;
 float _scale = sin(angle)*amplitude; 
 ellipse(i*dist_x, j*dist_y, shapeWidth*_scale, shapeHeight*_scale);
 }
 }
 popMatrix();
};



int mouse_X() {
 return (mouseX - xOffset); //correct positions matrix translations
}

int mouse_Y() {
 return (mouseY - xOffset); //correct positions matrix translations
}
void mouseClicked() {
 scaleTimer = 0;
 reactorPosition.x = mouse_X();
 reactorPosition.y = mouse_Y();
};

, multiple selections available,
For you

Programming
Results will update as you type.
  • Artificial Neural Network
  • Alternatives to the Processing IDE
  • p5.js Programming
    • p5.js Introduction
    • p5.js Variables
    • p5.js Random Numbers
    • p5.js SVG + Images
    • p5.js WebGL
    • p5.js Classes and Objects
    • p5.js Events and Functions
    • p5.js Loops
    • p5.js Coordinates
    • P5js Nested Loops
    • p5.js Animation Exercise 1
    • p5.js Animation Exercise 2
    • p5.js Conditionals
    • p5.js Arrays and Lists
    • p5.js Simple Collision Detection
    • p5.js Reactors
    • p5.js Tiling and Repetition
    • p5.js Vectors
    • p5.js Animation Solution with Objects
    • p5.js Easing
    • p5.js Perlin Noise
    • p5.js Particle System
    • p5.js Sound
    • p5j.s Typography
    • P5js Archive
      • P5js Motion Reactor
      • P5js Multiple Reactor Points
      • P5js Programming Basics: Parametric and Generative Graphic Design 2016
      • P5js End Exercise 2014
      • P5js End Exercise 2015
      • P5js Ext. Lektion 1 (Force Fields)
      • P5js Ext.Lektionen 2 (Rekursive Funktionen / Fraktale)
      • P5js How Computers Think
      • P5js End Exercise 2016 - Asteroids
      • P5js High Scores
      • P5js Artificial Neural Network
      • P5js Gesture Interactions
      • P5js Lesson 4.2 – Sine function
      • P5js Lesson 4.5 - Exercises
  • Programming in Processing (java)

{"serverDuration": 45, "requestCorrelationId": "7ca78a8a56fc4597a72a765afa1208f6"}