Poincare
Author: Daniel Mentrard
Date: 01-12-2007

A = (0.29803587992229, -0.09702479064300584)
R = 1.2000000000000002 (slider from -5 to 5, step 0.1)
c = Circle(A, R)
B = Point(c)
n = 3 (slider from 3 to 20, step 1)
B' = Rotate(B, 2 * 3.141592653589793 / n, A)
a, b_2 = Tangent(B, c)
b, d_2 = Tangent(B', c)
C = Intersect(a, b)
d = CircleArc(C, B', B)
liste1 = Sequence(Arc[Rotate[Circle[C, B'], k * 2 * 3.141592653589793 / n, A], Rotate[B', k * 2 * 3.141592653589793 / n, A], Rotate[B, k * 2 * 3.141592653589793 / n, A]], k, 0, n)
e = Segment(A, C)
D = Intersect(c, e)
f, a_1 = Tangent(D, c)
E = Intersect(f, a)
F = Intersect(b, f)
g = CircleArc(E, D, B)
h = CircleArc(F, B', D)
liste3 = Sequence(Arc[Rotate[Circle[E, D], k * 2 * 3.14 / n, A], Rotate[D, k * 2 * 3.14 / n, A], Rotate[B, k * 2 * 3.14 / n, A]], k, 0, n)
liste2 = Sequence(Arc[Rotate[Circle[F, B'], k * 2 * 3.14 / n, A], Rotate[B', k * 2 * 3.14 / n, A], Rotate[D, k * 2 * 3.14 / n, A]], k, 0, n)
i = Segment(A, E)
j = Segment(A, F)
G = Intersect(c, i)
H = Intersect(c, j)
k, b_1 = Tangent(G, c)
l, d_1 = Tangent(H, c)
I = Intersect(k, a)
J = Intersect(k, f)
K = Intersect(l, f)
L = Intersect(l, b)
p = CircleArc(I, G, B)
q = CircleArc(J, D, G)
r = CircleArc(K, H, D)
s = CircleArc(L, B', H)
liste4 = Sequence(Arc[Rotate[Circle[I, G], k * 2 * 3.14 / n, A], Rotate[G, k * 2 * 3.14 / n, A], Rotate[B, k * 2 * 3.14 / n, A]], k, 0, n)
liste5 = Sequence(Arc[Rotate[Circle[J, D], k * 2 * 3.14 / n, A], Rotate[D, k * 2 * 3.14 / n, A], Rotate[G, k * 2 * 3.14 / n, A]], k, 0, n)
liste6 = Sequence(Arc[Rotate[Circle[K, H], k * 2 * 3.14 / n, A], Rotate[H, k * 2 * 3.14 / n, A], Rotate[D, k * 2 * 3.14 / n, A]], k, 0, n)
liste7 = Sequence(Arc[Rotate[Circle[L, B'], k * 2 * 3.14 / n, A], Rotate[B', k * 2 * 3.14 / n, A], Rotate[H, k * 2 * 3.14 / n, A]], k, 0, n)
m = Segment(A, I)
t = Segment(A, J)
a1 = Segment(A, K)
b1 = Segment(A, L)
M = Intersect(c, m)
N = Intersect(c, t)
O = Intersect(c, a1)
P = Intersect(c, b1)
c1, e_1 = Tangent(M, c)
d1, f_1 = Tangent(N, c)
e1, g_1 = Tangent(O, c)
f1, h_1 = Tangent(P, c)
Q = Intersect(c1, a)
R_1 = Intersect(k, c1)
S = Intersect(d1, k)
T = Intersect(f, d1)
U = Intersect(e1, f)
V = Intersect(l, e1)
W = Intersect(f1, l)
Z = Intersect(b, f1)
g1 = CircleArc(Q, M, B)
h1 = CircleArc(R_1, G, M)
k1 = CircleArc(S, N, G)
p1 = CircleArc(T, D, N)
q1 = CircleArc(U, O, D)
r1 = CircleArc(V, H, O)
s1 = CircleArc(W, P, H)
t1 = CircleArc(Z, B', P)
liste8 = Sequence(Arc[Rotate[Circle[Q, M], k * 2 * 3.14 / n, A], Rotate[M, k * 2 * 3.14 / n, A], Rotate[B, k * 2 * 3.14 / n, A]], k, 0, n)
liste81 = Sequence(Arc[Rotate[Circle[R_1, G], k * 2 * 3.14 / n, A], Rotate[G, k * 2 * 3.14 / n, A], Rotate[M, k * 2 * 3.14 / n, A]], k, 0, n)
liste82 = Sequence(Arc[Rotate[Circle[S, N], k * 2 * 3.14 / n, A], Rotate[N, k * 2 * 3.14 / n, A], Rotate[G, k * 2 * 3.14 / n, A]], k, 0, n)
liste83 = Sequence(Arc[Rotate[Circle[T, D], k * 2 * 3.14 / n, A], Rotate[D, k * 2 * 3.14 / n, A], Rotate[N, k * 2 * 3.14 / n, A]], k, 0, n)
liste84 = Sequence(Arc[Rotate[Circle[U, O], k * 2 * 3.14 / n, A], Rotate[O, k * 2 * 3.14 / n, A], Rotate[D, k * 2 * 3.14 / n, A]], k, 0, n)
liste85 = Sequence(Arc[Rotate[Circle[V, H], k * 2 * 3.14 / n, A], Rotate[H, k * 2 * 3.14 / n, A], Rotate[O, k * 2 * 3.14 / n, A]], k, 0, n)
liste86 = Sequence(Arc[Rotate[Circle[W, P], k * 2 * 3.14 / n, A], Rotate[P, k * 2 * 3.14 / n, A], Rotate[H, k * 2 * 3.14 / n, A]], k, 0, n)
liste87 = Sequence(Arc[Rotate[Circle[Z, B'], k * 2 * 3.14 / n, A], Rotate[B', k * 2 * 3.14 / n, A], Rotate[P, k * 2 * 3.14 / n, A]], k, 0, n)
c_1 = Circle(A, B)
liste9 = Sequence(Arc[Rotate[Circle[C, B'], k * 2 * 3.141592653589793 / n, A], Rotate[B', k * 2 * 3.141592653589793 / n, A], Rotate[B, k * 2 * 3.141592653589793 / n, A]], k, 0, n)
liste10 = Sequence(Arc[Rotate[Circle[F, B'], k * 2 * 3.14 / n, A], Rotate[B', k * 2 * 3.14 / n, A], Rotate[D, k * 2 * 3.14 / n, A]], k, 0, n)
liste11 = Sequence(Arc[Rotate[Circle[E, D], k * 2 * 3.14 / n, A], Rotate[D, k * 2 * 3.14 / n, A], Rotate[B, k * 2 * 3.14 / n, A]], k, 0, n)
liste12 = Sequence(Arc[Rotate[Circle[C, B'], k * 2 * 3.141592653589793 / n + 3.141592653589793, A], Rotate[B', k * 2 * 3.141592653589793 / n + 3.141592653589793, A], Rotate[B, k * 2 * 3.141592653589793 / n + 3.141592653589793, A]], k, 0, n)
liste13 = Sequence(Arc[Rotate[Circle[B, B'], k * 2 * 3.141592653589793 / n, A], Rotate[B', k * 2 * 3.141592653589793 / n, A], Rotate[B, k * 2 * 3.141592653589793 / n, A]], k, 0, n)