How to draw simple animation using p5.js ?

Animation is a method in which a collection of images is combined in a specific way and processed then they appear as moving images. Building animations make on-screen objects seem to be alive.
In this article, we will learn to make a simple animation of the house in p5.js by using lines, rectangles and ellipses for making the parts of the house.
Approach:
- Make a list to store all the vertices of the house.
- Declare two variable iter and counter.
- Set the function setup() in which the size,colour and background of output window ,initiate the value of iter and counter as 1 and initialise the list of vertices.
- Set the function draw in which add stroke, stroke weight.
- Make a if condition to check iter within bound if yes increase the counter by 0.05 and take the ceil value of counter as iter , if no exit from the loo.
- Function to add vertices of house giving start and end point of line as addVertices().
- Now make functions to draw the parts of house:
- Make Function to draw vertical and horizontal lines in house.
- Make Function to draw square window
- Make Function to draw gate.
- Make Function to draw circular window.
- Make Function to draw chimney.
- After all this step now create a switch case to add all the parts of house step by step.
Below is the implementation of the above approach:
Javascript
| // List to store all the verticeslet vertices = [];// Variable declaredvariter;varcounter;// Function to set up output windowfunctionsetup() {    // Size of output window    createCanvas(600, 600);    // Fill the color    fill(31);    // Background of output window    background(31);    // Put the value of variables as 1    iter = 1;    counter = 1;    // Initialize the list of vertices    addVertices();}// Set the draw functionfunctiondraw() {    stroke(255);    strokeWeight(4);    step();    // Condition to check within bound    if(iter < 11) {        // Increase counter everytime        counter += 0.05;        // Set the iter variable to the        // floor value of counter        iter = floor(counter);    }    else{        // If iter increases by 11 then        // stop the loop        noLoop();    }}// Function to add vertices of house giving// start and end point of linefunctionaddVertices() {    vertices.push(newp5.Vector(100, 300));    vertices.push(newp5.Vector(340, 300));    vertices.push(newp5.Vector(40, 380));    vertices.push(newp5.Vector(160, 380));    vertices.push(newp5.Vector(400, 380));    vertices.push(newp5.Vector(40, 550));    vertices.push(newp5.Vector(160, 550));    vertices.push(newp5.Vector(400, 550));}// Function to draw lines in housefunctiondrawLine(a, b) {    line(vertices[a].x, vertices[a].y,         vertices[b].x, vertices[b].y);}// Function to draw gatefunctionaddGate() {    rectMode(CENTER);    rect(100, 500, 70, 100);}// Function  to draw windowfunctionaddWindow() {    rect(280, 430, 40, 30);}// Function to add  circular windowfunctionaddOculus() {    ellipse(100, 340, 20, 20);}// Function to add ChimneyfunctionaddChimney() {    rect(320, 295, 16, 20);    ellipse(320, 285, 16, 10);}// Function to draw parts of // house step by stepfunctionstep() {    switch(iter) {        case1:            drawLine(5, 6);            break;        case2:            drawLine(6, 7);            break;        case3:            drawLine(2, 5);            drawLine(3, 6);            break;        case4:            drawLine(4, 7);            break;        case5:            drawLine(2, 3);            drawLine(3, 4);            break;        case6:            drawLine(0, 2);            drawLine(0, 3);            drawLine(1, 4);            break;        case7:            drawLine(0, 1);            break;        case8:            addGate();            break;        case9:            addWindow();            break;        case10:            addOculus();            break;        case11:            addChimney();            break;    }} | 
Output:
Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, zambiatek Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!
 
				 
					



