amphore

k = 0.5 (slider from 0 to 2, step 0.1)
j = If(k < 1.0, k, 1.0)
A = Intersect(xAxis, yAxis)
B = Point(yAxis)
c = Circle(A, B)
C, D = Intersect(c, a)
e = OrthogonalLine(D, xAxis)
d = Circle(D, A)
E, F = Intersect(d, a)
F' = Mirror(F, yAxis)
b = OrthogonalLine(F, a)
G = Intersect(e, b)
G' = Mirror(G, yAxis)
f = CircleSector(F, G, D)
H = Intersect(b, yAxis)
g = CircleSector(H, G', G)
u = Vector(H, E)
G'' = Translate(G', Vector[k / 2.0 * u])
G'_1 = Translate(G, Vector[k / 2.0 * u])
H' = Translate(H, Vector[k / 2.0 * u])
h = CircleSector(H', G'', G'_1)
D' = Mirror(D, yAxis)
D'' = Rotate(D', j * 180.0 * °, F')
G''_1 = Rotate(G', j * 180.0 * °, F')
q = CircleSector(F', D'', G''_1)
G'_2 = Rotate(G, -1.0 * j * 180.0 * °, F)
D'_1 = Rotate(D, -1.0 * j * 180.0 * °, F)
r = CircleSector(F, G'_2, D'_1)
l = If(k < 1.0, 0.0, k)
v = Vector(F', D')
F'' = Translate(F', Vector[l * v])
D''' = Translate(D'', Vector[l * v])
J = Translate(G''_1, Vector[l * v])
s = CircleSector(F'', D''', J)
w = Vector(F, D)
K = Translate(D'_1, Vector[l * w])
L = Translate(G'_2, Vector[l * w])
K' = Translate(F, Vector[l * w])
t = CircleSector(K', L, K)
poly1, i, m, n, a_1 = Polygon(F', A, F, H)
p = CircleSector(F', D', G')