I want to add a quick addition to my previous post where I discussed creating a shape from a series of line segments like this:
ctx.lineWidth = 3; // just making it a little more visible ctx.beginPath(); ctx.moveTo(20,20); ctx.lineTo(20,100); ctx.lineTo(100,100); ctx.lineTo(20,200); ctx.lineTo(100,200); ctx.lineTo(200, 20); ctx.lineTo(200, 200); ctx.stroke();

I forgot to mention that there is a way to write this using a 2 dimensional array so you don't have to repeat so much.
// set your points in a 2d array const shape = [ [20,20], [20,100], [100, 100], [20, 200], [100, 200], [200, 20], [200, 200] ]; ctx.lineWidth = 3; ctx.beginPath(); // loop through each set of points // if it's the first set (at index 0), `moveTo` that point, // otherwise use `lineTo` shape.forEach((p, i) => { i === 0 ? ctx.moveTo(p[0], p[1]) : ctx.lineTo(p[0], p[1]) }) ctx.stroke();
Top comments (0)