func bisector(a: Point, b: Point): Line { var d = len(Line(a, b)); var c1 = Circle(a, d*3/4); var c2 = Circle(b, d*3/4); var (x, y) = and(c1, c2); return Line(x, y); } var A = Point(-100, 0); var B = Point(100, 0); var AB = Line(A, B); var bs = bisector(A, B); var M = and(AB, bs); var H = and(bs, Circle(M, AB)); var I = and(Line(A, H), Circle(H, Line(A, M))); var C = and(bs, Circle(A, Line(A, I))); var c1 = Circle(A, AB); var c2 = Circle(B, AB); var c3 = Circle(C, AB); var D = and(c3, c1); var E = and(c2, c3); Line(A, D); Line(C, D); Line(B, E); Line(C, E);
draw
play
png