Playground
Every line is a fold. Press Run to evaluate, step through the result, and click a crease to see the statement that made it.
paper square
; triangle
fold (map .a onto .c) as --bd
; preliminary base
reverse (map .b onto .c) as --h
reverse (map .d onto .c) as --v
; apex O, the paper centre
.o = --h * --v
; centre line of the base
--mid = (through .c .o)
; front-right corner: paper (1/2,0) table (1,1/2)
.sr = --ab * --h
reverse (map .sr onto --mid through .c)
; front-left corner: paper (0,1/2) table (1/2,1)
.sl = --da * --v
reverse (map .sl onto --mid through .c)
; back-right corner: paper (1, 1/2)
.br = --bc * --h
reverse (map .br onto --mid through .c)
; back-left corner: paper (1/2, 1)
.bl = --cd * --v
reverse (map .bl onto --mid through .c)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31paper square
; triangle
fold (map .a onto .c) as --bd
; preliminary base
reverse (map .b onto .c) as --h
reverse (map .d onto .c) as --v
; apex O, the paper centre
.o = --h * --v
; centre line of the base
--mid = (through .c .o)
; front-right corner: paper (1/2,0) table (1,1/2)
.sr = --ab * --h
reverse (map .sr onto --mid through .c)
; front-left corner: paper (0,1/2) table (1/2,1)
.sl = --da * --v
reverse (map .sl onto --mid through .c)
; back-right corner: paper (1, 1/2)
.br = --bc * --h
reverse (map .br onto --mid through .c)
; back-left corner: paper (1/2, 1)
.bl = --cd * --v
reverse (map .bl onto --mid through .c)