Published
Edited
Sep 23, 2021
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
mutable lastMouseX = 0
Insert cell
mutable angle = 0
Insert cell
mutable listenerIsSet = false
Insert cell
{
if (listenerIsSet)
return;
canvas.addEventListener('mousemove', onMouseMove, false);
mutable listenerIsSet = true;
}
Insert cell
onMouseMove = (event) => {
let mouseX = event.clientX;

let diffX = mouseX - lastMouseX;

mutable angle = angle + diffX/2.5;

mutable lastMouseX = mouseX;
}
Insert cell
Insert cell
glm = import("gl-matrix")
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more