QuarterEllipse(a, b, c)
: if k == (1., 0.552) rel (a, b, c)
, f == (0.552, 1.) rel (a, b, c)
| T
-> stroke (c, f, k, b) fi
Ellipse(a, b, c)
: if e == (0., 1.) rel (a, b, c)
, d == (0., - 1.) rel (a, b, c)
, c == (- 1., - 0.) rel (a, b, c)
| T
-> QuarterEllipse(a, b, e)
; QuarterEllipse(a, e, c)
; QuarterEllipse(a, c, d)
; QuarterEllipse(a, d, b) fi
FillQuarterEllipse(a, b, c)
: if k == (1., 0.552) rel (a, b, c)
, f == (0.552, 1.) rel (a, b, c)
| T
-> fill (c, f, k, b), (b, a), (a, c) fi
FillEllipse(a, b, c)
: if d == (- 1, 0) rel (a, b, c)
, e == (0, - 1) rel (a, b, c)
| T
-> FillQuarterEllipse(a, b, c)
; FillQuarterEllipse(a, c, d)
; FillQuarterEllipse(a, d, e)
; FillQuarterEllipse(a, e, b) fi
BlackEllipse(a, b, c): black paint Ellipse(a, b, c)
FilledEllipse(a, b, c)
: BlackEllipse(a, b, c); FillEllipse(a, b, c)
FillLune(a, b1, b2, c)
: if k1 == (1., 0.552) rel (a, b1, c)
, f1 == (0.552, 1.) rel (a, b1, c)
, k2 == (1., 0.552) rel (a, b2, c)
, f2 == (0.552, 1.) rel (a, b2, c)
| T
-> fill (c, f1, k1, b1), (b1, b2), (b2, k2, f2, c) fi
QuarterCircle(a, b)
: if c == (0, 1) rel (a, b) | T
-> QuarterEllipse(a, b, c) fi
Circle(a, b)
: if c == (0, 1) rel (a, b) | T -> Ellipse(a, b, c) fi
stroke4(a, b, c, d): black paint stroke (a, b, c, d)
Coeur(a, b)
: if f == (0.3185, 0.9218) rel (a, b)
, e == (- 0.4127, 0.4211) rel (a, b)
, d == (- 0.4127, - 0.4211) rel (a, b)
, c == (0.3185, - 0.9218) rel (a, b)
| (c, f) para (d, e)
and (a, e) cong (d, a)
and (a, f) cong (c, a)
and (b, f) cong (c, b)
-> red paint fill (a, d, c, b), (b, f, e, a) fi
QuarterBody(a, b)
: if c == (0., 1.) rel (a, b) | T
-> QuarterFilledElipse(a, b, c) fi
QuarterFilledElipse(a, b, c)
: if k == (1., 0.552) rel (a, b, c)
, f == (0.552, 1.) rel (a, b, c)
| T
-> fill (b, k, f, c), (c, a), (a, b)
; black paint stroke (b, k, f, c) fi
FilledEllipses(a, b, c, x)
: if y == (1, 0.9) rel (a, x, b)
, z == (0.9, 1) rel (a, c, x)
| T
-> FilledEllipse(a, b, c); FilledEllipse(x, y, z) fi
Eyes(m, r, h, p)
: if l == (- 1, 0) rel (m, r, h)
, b == (1.55, 0) rel (m, r, h)
, c == (1, 1) rel (m, r, h)
, k == (2, 1) rel (r, m, p)
, d == (1, 0.33) rel (m, p, r)
, e == (1, 0.6) rel (m, p, h)
, w == (0, 0.1) rel (m, h)
| T
-> cyan paint
(m, w) width
FilledEllipses(r, b, c, l)
; black paint FilledEllipses(p, d, e, k) fi
Curl(a, b)
: if f == (1, - 0.1) rel (a, b)
, e == (1.05, - 0.05) rel (a, b)
, d == (1.05, 0.05) rel (a, b)
, c == (1, 0.1) rel (a, b)
| T
-> black paint stroke (c, d, e, f) fi
Smile(a, b)
: if e == (1, 0.57) rel (a, b)
, h == (0.3, 0.53) rel (a, b)
, k == (- 0.12, 0.17) rel (a, b)
, f == (1, 0.6) rel (a, b)
, i == (0.3, 0.57) rel (a, b)
| T
-> black paint
fill (b, e, h, k), (k, i, f, b)
; black paint
round ends
stroke (b, e, h, k)
; round ends stroke (k, i, f, b); Curl(h, k) fi
Body(a, b)
: if e == (0., 1.) rel (a, b)
, d == (0., - 1.) rel (a, b)
, c == (- 1., - 0.) rel (a, b)
, m == (0.48, - 0.53) rel (a, b)
, r == (0.37, - 0.45) rel (a, b)
, h == (0.37, - 0.65) rel (a, b)
, p == (0.38, - 0.46) rel (a, b)
| T
-> QuarterBody(a, e)
; QuarterBody(a, c)
; QuarterBody(a, d)
; QuarterBody(a, b)
; Eyes(m, r, h, p)
; Smile(a, b) fi
Leg(hip, heel, toe)
: if n == (- 0.15, 0.07) rel (heel, hip, toe)
, m == (1.04, 0.2) rel (heel, hip, toe)
, l == (0.24, 0.38) rel (heel, hip, toe)
, k == (0.4, 0.31) rel (heel, hip, toe)
, j == (0.78, 0.29) rel (heel, hip, toe)
, i == (0.22, 0.43) rel (heel, hip, toe)
, h == (0.86, 0.41) rel (heel, hip, toe)
, g == (0.25, 0.64) rel (heel, hip, toe)
, f == (0.59, 0.46) rel (heel, hip, toe)
, e == (0.16, 0.91) rel (heel, hip, toe)
, d == (- 0.13, 0.97) rel (heel, hip, toe)
| T
-> fill (l, g, e, toe), (toe, d, n, heel), (heel, l)
; stroke4(toe, e, g, l)
; fill (m, h, f, i)
, (i, heel)
, (heel, k, j, hip)
, (hip, m)
; black paint
stroke (m, h, f, i)
; stroke (heel, k, j, hip)
; stroke (toe, d, n, heel) fi
UncoloredThing(center, base)
: if lhip == (0.4, 0.29) rel (center, base)
, lheel == (1.15, 0.55) rel (center, base)
, ltoe == (1.25, - 0.65) rel (center, base)
, nose == (0.219, - 0.5661) rel (center, base)
, rhip == (0.18, - 0.06) rel (center, base)
, rheel == (0.9, 0.2) rel (center, base)
, rtoe == (0.98, - 0.93) rel (center, base)
, w == (0.01, 0) rel (center, base)
| T
-> center, w width
round ends
Leg(rhip, rheel, rtoe)
; Body(center, nose)
; Leg(lhip, lheel, ltoe) fi
Thing(a, b): (225, 225, 0) paint UncoloredThing(a, b)
ThingPlaced(a, b)
: (0, 255, 0) paint UncoloredThingPlaced(a, b)
UncoloredThingPlaced(a, b)
: if e == (0.5209, 0.3603) rel (a, b)
, d == (0.3612, 0.4803) rel (a, b)
, c == (0.6806, 0.2402) rel (a, b)
| (e, c) cong (d, e)
and (c, b) cong (d, c)
and hor (b, d)
and hor (c, d)
and ver (a, d)
-> UncoloredThing(c, b) fi
Dot(x): 6 width round ends black paint stroke (x, x)
Dots(x, y): red paint draw (x, y)
ThigsGalore(a)
: if a5 == (- 23., - 514.) rel (a)
, a4 == (- 28., - 197.) rel (a)
, a3 == (- 29., - 488.) rel (a)
, a2 == (- 29., - 56.) rel (a)
, a1 == (- 29., - 12.) rel (a)
, a0 == (- 30., - 340.) rel (a)
, z == (- 31., - 119.) rel (a)
, y == (- 32., - 243.) rel (a)
, x == (- 33., - 365.) rel (a)
, w == (- 33., - 584.) rel (a)
, v == (- 34., - 143.) rel (a)
, u == (- 35., - 273.) rel (a)
, t == (- 40., - 406.) rel (a)
, s == (- 43., - 449.) rel (a)
, r == (- 45., - 475.) rel (a)
, q == (- 46., - 171.) rel (a)
, p == (- 47., 16.) rel (a)
, o == (- 49., - 41.) rel (a)
, n == (- 51., - 303.) rel (a)
, m == (- 51., - 78.) rel (a)
, l == (- 54., - 615.) rel (a)
, k == (- 71., - 115.) rel (a)
, j == (- 73., - 440.) rel (a)
, i == (- 82., - 545.) rel (a)
, h == (- 91., - 225.) rel (a)
, g == (- 124., - 359.) rel (a)
, f == (- 133., - 505.) rel (a)
, e == (- 204., - 261.) rel (a)
, d == (- 208., - 605.) rel (a)
, c == (- 320., 22.) rel (a)
| T
-> ThingPlaced(a, z)
; ThingPlaced(a, q)
; ThingPlaced(a, y)
; ThingPlaced(a, n)
; ThingPlaced(a, a0)
; ThingPlaced(a, x)
; ThingPlaced(a, s)
; ThingPlaced(a, a3)
; ThingPlaced(a, i)
; ThingPlaced(a, j)
; ThingPlaced(a, g)
; ThingPlaced(a, h)
; ThingPlaced(a, w)
; ThingPlaced(a, a5)
; ThingPlaced(a, t)
; ThingPlaced(a, u)
; ThingPlaced(a, a4)
; ThingPlaced(a, r)
; ThingPlaced(a, l)
; ThingPlaced(a, f)
; ThingPlaced(a, d)
; ThingPlaced(a, e)
; ThingPlaced(a, v)
; ThingPlaced(a, m)
; ThingPlaced(a, k)
; ThingPlaced(a, a2)
; ThingPlaced(a, o)
; ThingPlaced(a, c)
; ThingPlaced(a, p)
; ThingPlaced(a, a1) fi
Plaft(a, b, c)
: (220, 128, 0) paint fill (a, b), (b, c), (c, a)
TestPerp(a, b)
: if c == (0, 0), d == (0, 0)
| (a, c) perp (a, b)
and (d, b) perp (a, b)
and (a, c) cong (c, d)
and (c, d) perp (a, c)
-> draw (a, b), (b, d), (d, c), (c, a) fi
TestEquals(a, b, c)
: if m == (0, 0), n == (0, 0), o == (0, 0), p == (0, 0)
| m = (0.6, 0.8) rel (a, b, c)
and n = (0.7, 0.7) rel (a, b, c)
and o = (0.8, 0.6) rel (a, b, c)
and p = (- 0.7, - 0.7) rel (a, b, c)
-> 10 width
black paint
stroke (a, a)
; stroke (m, m)
; stroke (b, b)
; stroke (c, c)
; stroke (n, n)
; stroke (o, o)
; stroke (p, p)
; 1 width Ellipse(a, b, c) fi
SmallToe(a, b, c)
: if g == (- 0.445, 0.3834) rel (a, b, c)
, f == (0.8184, 0.5851) rel (a, b, c)
, e == (- 0.5595, 0.7449) rel (a, b, c)
, d == (- 0.3254, 0.8516) rel (a, b, c)
| (e, d) para (d, c)
-> stroke4(a, g, e, d)
; stroke4(d, c, f, b)
; fill (a, g, e, d), (d, c, f, b), (b, a) fi
FourToes(a, b, c)
: if l == (0, 1) rel (b, a, c)
, k == (0.37, 0.92) rel (b, a, c)
, j == (0.37, 0) rel (b, a, c)
, i == (0.7, 0.85) rel (b, a, c)
, h == (0.7, 0) rel (b, a, c)
, f == (1, 0.8) rel (b, a, c)
| T
-> yellow paint
SmToe(a, f); SmToe(h, i); SmToe(j, k); SmToe(b, l) fi
SmToe(a, b)
: if c == (0.9695, - 1.1524) rel (a, b) | T
-> SmallToe(a, b, c) fi
FiveThings(b, c)
: if z == (- 1, 0) rel (b, c)
, i == (0.67, 0) rel (z, c)
, j == (0.67, 0) rel (z, i)
, k == (0.67, 0) rel (z, j)
, l == (0.67, 0) rel (z, k)
| z = (- 1, 0) rel (b, c)
and i = (0.8, 0) rel (z, c)
and j = (0.8, 0) rel (z, i)
and k = (0.8, 0) rel (z, j)
and l = (0.8, 0) rel (z, k)
-> (255, 0, 0) paint
UncoloredThingPlaced(z, l)
; (240, 40, 0) paint
UncoloredThingPlaced(z, k)
; (220, 80, 0) paint
UncoloredThingPlaced(z, j)
; (200, 160, 0) paint
UncoloredThingPlaced(z, i)
; (180, 200, 0) paint UncoloredThingPlaced(z, c) fi