Public
Edited
Jun 24, 2022
4 stars
Insert cell
Insert cell
{
const cx = 50;
return new Renderer(width, 100)
.fill("rgba(180,90,45,0.5)")
.ellipse(cx, 50, 30)
.render();
}
Insert cell
Insert cell
Insert cell
new Renderer(width, 100)
.fill("rgba(180,90,45,0.5)")
.ellipse(cx, 50, 30)
.render()
Insert cell
Insert cell
Insert cell
{
const r = new Renderer(width, 100).fill("rgba(180,90,45,0.5)");
for (let i = 30; i < 610; i++) {
yield r.clear().ellipse(i, 50, 30).render();
}
}
Insert cell
Insert cell
Insert cell
{
restart // Make reference to a GUI element in another cell.
const r = new Renderer(width, 100).fill("rgba(180,90,45,0.5)");
for (let i = 30; i < 610; i++) {
yield r.clear().ellipse(i, 50, 30).render();
}
}
Insert cell
Insert cell
Insert cell
Insert cell
function* ticker1(w) {
let i = 0;
while (true) {
i = (i + 1) % w;
yield i;
}
}
Insert cell
Insert cell
cx1 = ticker1(600)
Insert cell
new Renderer(width, 100)
.fill("rgba(180,90,45,0.5)")
.ellipse(cx1, 50, 30)
.render()
Insert cell
Insert cell
function* ticker2(w) {
let i = 0;
while (true) {
i = (i + 60) % w;
yield Promises.delay(1000, i);
}
}
Insert cell
cx2 = ticker2(600)
Insert cell
Insert cell
Insert cell
function* ticker(timeToComplete = 1000, delay = 10) {
const start = Date.now(); // Poll the current time in milliseconds.
const end = start + timeToComplete;
let t = 0;
yield t; // Yield an immediate result at start
while (t <= 1) {
t = (Date.now() - start) / (end - start);
// Yield subsequent results after the given delay.
yield Promises.delay(delay, Math.min(1, t));
}
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
new Renderer(width, 100)
.fill("rgba(180,90,45,0.5)")
.ellipse(10 + t * 600, 50, 10 + t * 30)
.render()
Insert cell
Insert cell
t2 = {
trigger
return ticker(1000);
}
Insert cell
mutable trigger = false
Insert cell
Insert cell
{
const r = new Renderer(width, 100)
.fill("rgba(180,90,45,0.5)")
.ellipse(10 + t2 * 600, 50, 10 + t2 * 30);
r.addListener("click", (ev) => (mutable trigger = true));
return r.render();
}
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