/
p5j.s Typography

p5j.s Typography

Using System fonts in p5.js is quite simple. You can also load your own fonts and use them to type on the canvas

let myFont; function preload() { myFont = loadFont('helvetica.otf'); //load your own font } function setup() { fill(0,0,255); textFont(myFont); textSize(36); text('p5*js', 10, 50); }

 

In order to make interactive, kinetic typography, you need to use p5.Graphics. By calling createGraphics(w, h, [renderer]) you can draw into an off-screen graphics buffer. It allows you to overlay graphics on top of the canvas

The following example is based on https://timrodenbroeker.de/processing-tutorial-kinetic-typography-1/

// GRID const g = 100; // cell width const cellnum = 5; // numbers of cells per row and column // BASIC let cg; //canvas // SOURCE let sx; let sy; let sw; let sh; // DESTINATION let dx; let dy; let dw; let dh; var wave; function setup() { createCanvas(400, 400); cg = createGraphics(400, 400); cg.fill(0,0,0); cg.textFont("Hind"); } function draw() { background(225); // grid(); cg.push(); cg.translate(width / 2, height / 2); cg.textSize(200); cg.textAlign(CENTER, CENTER); cg.text('p5.js', 0, 0); cg.pop(); for (let x = 0; x < cellnum; x++) { for (let y = 0; y < cellnum; y++) { wave = int(cos((frameCount + ( x*y )) * 0.1) * 200); // SOURCE sx = x * g + wave; sy = int(y * g + (wave*0.2)); sw = g; sh = g; // DESTINATION dx = x * g; dy = y * g; dw = g; dh = g; copy(cg, sx, sy, sw, sh, dx, dy, dw, dh); } } grid(); } function grid() { for (let i = 0; i < cellnum; i++) { for (let j = 0; j < cellnum; j++) { //show grid background cg.strokeWeight(random(1,3)); cg.stroke(0); cg.noFill(); cg.rect(i * g, j * g, g, g); } } }

Another method to manipulate the font is to use textToPoints(txt, x, y, fontSize, [options])method, which allows us to create a vertex array on the path which define a specific string.

 



 

Related content

p5.js Introduction
p5.js Introduction
More like this
Arduino and P5.js
Arduino and P5.js
More like this
p5.js Coordinates
p5.js Coordinates
More like this
p5.js Variables
p5.js Variables
More like this
p5.js Tiling and Repetition
p5.js Tiling and Repetition
More like this
p5.js Events and Functions
p5.js Events and Functions
More like this