The vertex() function in p5.js is used to specify the coordinates of the vertices used to draw a shape. It can only be used with the beginShape() and endShape() functions to make various shapes and curves like points, lines, triangles, quads and polygons.
Syntax:
vertex( x, y )
OR
vertex( x, y, z, [u], [v] )
Parameters: This function accepts five parameters as mentioned above and described below:
- x: It is a number that specifies the x-coordinate of the vertex.
- y: It is a number that specifies the y-coordinate of the vertex.
- z: It is a number that specifies the z-coordinate of the vertex.
- u: It is a number that specifies the u-coordinate of the texture of the vertex. It is an optional parameter.
- v: It is a number that specifies the v-coordinate of the texture of the vertex. It is an optional parameter.
The examples below illustrates the vertex() function in p5.js:
Example 1:
let currMode; function setup() { createCanvas(400, 300); textSize(18); let shapeModes = [LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS]; let index = 0; currMode = shapeModes[index]; let helpText = createP( `Click on the button to change the shape drawing mode. The red circles represent the vertices of the shape` ); helpText.position(20, 0); let closeBtn = createButton( "Change mode" ); closeBtn.position(20, 60); closeBtn.mouseClicked(() => { if (index < shapeModes.length) index++; else index = 0; currMode = shapeModes[index]; }); } function draw() { clear(); // Starting the shape using beginShape() beginShape(currMode); // Specifying all the vertices vertex(145, 245); vertex(50, 105); vertex(25, 235); vertex(115, 120); vertex(250, 125); // Ending the shape using endShape() endShape(); // Points for demonstration fill( "red" ); circle(145, 245, 10); circle(50, 105, 10); circle(25, 235, 10); circle(115, 120, 10); circle(250, 125, 10); noFill(); } |
Output:
Example 2:
let vertices = []; function setup() { createCanvas(400, 300); textSize(18); text( "Click anywhere to place a vertice " + "at that point" , 10, 20); } function mouseClicked() { // Update the vertices array with // current mouse position vertices.push({ x: mouseX, y: mouseY }); clear(); fill( "black" ); text( "Click anywhere to place a vertice " + "at that point" , 10, 20); noFill(); // Draw shape using the current vertices array beginShape(); for (let i = 0; i < vertices.length; i++) vertex(vertices[i].x, vertices[i].y); endShape(CLOSE); fill( "red" ); // Draw a circle at all the vertices for (let i = 0; i < vertices.length; i++) circle(vertices[i].x, vertices[i].y, 15); } |
Output:
Online editor: https://editor.p5js.org/
Environment Setup: https://www.geeksforgeeks.org/p5-js-soundfile-object-installation-and-methods/
Reference: https://p5js.org/reference/#/p5/vertex