Convert "Painting" to typst
This commit is contained in:
82
src/Warm-Ups/Painting/main.typ
Normal file
82
src/Warm-Ups/Painting/main.typ
Normal file
@ -0,0 +1,82 @@
|
||||
#import "@local/handout:0.1.0": *
|
||||
#import "@preview/cetz:0.3.1"
|
||||
|
||||
#show: handout.with(
|
||||
title: [Warm-Up: What's an AST?],
|
||||
by: "Mark",
|
||||
subtitle: "Based on a true story.",
|
||||
)
|
||||
|
||||
#problem()
|
||||
Say we have a painting on a string. \
|
||||
Hang the painting on two nails so that if either is removed, the painting falls. \
|
||||
|
||||
#v(2mm)
|
||||
You may detach the string as you hang the painting, but it must be re-attached once you're done. \
|
||||
#hint[The solution to this problem isn't a "think outside the box" trick, it's a clever wrapping of the string.]
|
||||
|
||||
|
||||
#v(2mm)
|
||||
|
||||
#align(
|
||||
center,
|
||||
cetz.canvas({
|
||||
import cetz.draw: *
|
||||
let s = 2.5
|
||||
|
||||
|
||||
line(
|
||||
(0 * s, 1 * s),
|
||||
(2 * s, 1 * s),
|
||||
(2 * s, 0 * s),
|
||||
(0 * s, 0 * s),
|
||||
close: true,
|
||||
stroke: (thickness: 0.8mm),
|
||||
)
|
||||
|
||||
line(
|
||||
(0.1 * s, 1 * s),
|
||||
(0.5 * s, 1.5 * s),
|
||||
(1.5 * s, 1.5 * s),
|
||||
(1.9 * s, 1 * s),
|
||||
stroke: (thickness: 0.5mm, dash: "dotted"),
|
||||
)
|
||||
|
||||
circle((0.5 * s, 1.5 * s), radius: 0.04 * s, fill: black, stroke: none)
|
||||
circle((1.5 * s, 1.5 * s), radius: 0.04 * s, fill: black, stroke: none)
|
||||
|
||||
line(
|
||||
(0.66 * s, 0.66 * s),
|
||||
(0.66 * s, 0.35 * s),
|
||||
(0.60 * s, 0.1 * s),
|
||||
)
|
||||
|
||||
line(
|
||||
(0.72 * s, 0.1 * s),
|
||||
(0.66 * s, 0.35 * s),
|
||||
)
|
||||
|
||||
line(
|
||||
(0.66 * s, 0.575 * s),
|
||||
(0.6 * s, 0.475 * s),
|
||||
(0.525 * s, 0.575 * s),
|
||||
)
|
||||
|
||||
line(
|
||||
(0.66 * s, 0.575 * s),
|
||||
(0.72 * s, 0.475 * s),
|
||||
(0.795 * s, 0.575 * s),
|
||||
)
|
||||
|
||||
circle((0.66 * s, 0.66 * s), radius: 0.07 * s, fill: white)
|
||||
}),
|
||||
)
|
||||
|
||||
#solution([
|
||||
Say we have a left nail and a right nail. The path of the string is as follows:
|
||||
- Start on the left
|
||||
- Move over both nails, wrap right nail cw
|
||||
- Wrap left nail ccw
|
||||
- Wrap right nail ccw
|
||||
- Exit downwards, in between both nails
|
||||
])
|
Reference in New Issue
Block a user