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
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 k == (1., 0.552) rel (a, b)
, f == (0.552, 1.) rel (a, b)
, c == (0., 1.) rel (a, b)
| T
-> black paint
stroke (c, f, k, b)
; fill (a, c), (c, f, k, b), (b, a) 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 draw (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)
| T
-> cyan paint
FilledEllipses(r, b, c, l)
; black paint FilledEllipses(p, d, e, k) fi
Curl(a, b)
: if f == (0.95, - 0.1) rel (a, b)
, e == (1., - 0.05) rel (a, b)
, d == (1., 0.05) rel (a, b)
, c == (0.95, 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
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): lightred paint UncoloredThing(a, b)
ThingPlaced(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)
-> Thing(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