(* An optical illusion. Drag the points to discover the secret. *) CONST StickWidth = 25; PRED IsRect(a, b, c, d) IS (a, b) PARA (d, c) AND (b, c) PARA (a, d) AND Angle.Right(a, b, c) END; UI PointTool(IsRect); PRED IsHalfRect(a, b, c, d) IS (a, b) PARA (d, c) AND Angle.Right(a, d, c) END; UI PointTool(IsHalfRect); PROC DrawQuad(a, b, c, d) IS PS.MoveTo(a); PS.LineTo(b); PS.LineTo(c); PS.LineTo(d); PS.Close(); SAVE PS IN PS.SetColor(Color.White); PS.Fill() END; PS.Stroke() END; UI PointTool(DrawQuad); PROC Cmd0() IS IF VAR q = (-156.77805, -7.584892), r = (142.0091, -17.979002), s = (115.50073, -116.86352), t = (-137.08612, -97.8451), u = (81.03986, 210.1015), v = (-82.55463, 212.37697) IN VAR a ~ (100.47148, -67.31985), b ~ (-64.63778, 216.35509), c ~ (-44.425213, 228.11954), d ~ (120.68404, -55.555393), e ~ (57.49129, 232.22787), f ~ (77.32268, 219.83167), g ~ (-101.41944, -66.11875), h ~ (-121.250824, -53.722538), i ~ (-139.56445, 64.774734), j ~ (28.195253, 56.858265), k ~ (42.207333, 32.784054), l ~ (-140.66684, 41.413757), m ~ (148.65303, 27.760948), n ~ (70.03145, 31.47105), o ~ (56.019363, 55.545265), p ~ (149.75542, 51.12192) IN IsRect(a, b, c, d) AND IsRect(e, f, g, h) AND (c, b) CONG (e, f) AND IsHalfRect(i, j, k, l) AND Geometry.Colinear(a, k, b) AND Geometry.Colinear(a, j, b) AND (c, b) CONG (i, l) AND IsHalfRect(m, n, o, p) AND Geometry.Colinear(d, n, c) AND Geometry.Colinear(d, o, c) AND (m, p) CONG (c, b) AND Geometry.Colinear(i, j, p) AND Geometry.Colinear(i, o, p) AND q = Geometry.Mid(i, l) AND r = Geometry.Mid(p, m) AND s = Geometry.Mid(a, d) AND t = Geometry.Mid(g, h) AND u = Geometry.Mid(e, f) AND v = Geometry.Mid(b, c) AND StickWidth = Geometry.Dist(b, c) -> PS.SetWidth(3); DrawQuad(a, b, c, d); DrawQuad(e, f, g, h); DrawQuad(i, j, k, l); DrawQuad(m, n, o, p) END END FI END;