{
const { canvas, regl, camera } = plot5;
const drawBorderedLines = createDrawBorderedLineCommand(regl);
const spectrum = t => [
0.5 + 0.5 * Math.cos(t),
0.5 + 0.5 * Math.cos(t - (2 / 3) * Math.PI),
0.5 + 0.5 * Math.cos(t - (4 / 3) * Math.PI),
1
];
const wavyGrayscale = t => [
0.5 + 0.5 * Math.cos(t * 10),
0.5 + 0.5 * Math.cos(t * 10),
0.5 + 0.5 * Math.cos(t * 10),
1
];
camera(() => {
drawBorderedLines({
position: lissajous(t, a, b, δ),
width: t.map(t => 5 + 3 * Math.cos(t)),
color: t.map(spectrum),
borderWidth: t.map(t => 5 + 3 * Math.cos(t)),
borderColor: t.map(wavyGrayscale),
maxExpectedTurningAngle
});
});
return canvas;
}