40 lines
840 B
Typst
40 lines
840 B
Typst
// compile with 164.2ppi
|
|
#import "@preview/cetz:0.3.1";
|
|
|
|
#let fps = 60;
|
|
#let frames = 6 * fps;
|
|
|
|
#set page(paper: "presentation-16-9", fill: rgb("202020"))
|
|
#set text(font: "Departure Mono", size: 36pt, fill: rgb("ffffff"))
|
|
|
|
#let cursor(t, blink_rate: 0.3) = {
|
|
text(if calc.rem(t, blink_rate * 2) < blink_rate { "ω" } else { " " })
|
|
}
|
|
|
|
#let done = false;
|
|
#let frame = 0;
|
|
#while not done {
|
|
frame += 1
|
|
|
|
if frame > frames {
|
|
done = true
|
|
} else {
|
|
let t = frame / fps
|
|
|
|
page[#cetz.canvas({
|
|
import cetz.draw: *
|
|
|
|
// rect((0 + t * 10, 0), (2 + t * 10, 10), fill: white)
|
|
// rect((30,0), (40,1), fill: white)
|
|
circle((1,1), name: "spinner")
|
|
line(
|
|
(1, 1),
|
|
..range(0, frame + 1).map(f => (anchor: f * 1deg, name: "spinner")),
|
|
fill: white,
|
|
stroke: 0pt
|
|
)
|
|
})]
|
|
}
|
|
}
|
|
|
|
|