Pour déplacer le cube rose,
il suffit de bouger le point M

a: 4
B = (1.42, -3.06)
c = Circle(B, a)
C = Point(c)
G = Point(Circle[C, Distance[B, C], Segment[B, C]])
b, F, A, D, H, E, faceACBD, faceBDHE, faceBCFE, faceACFG, faceADHG, faceEFGH, arêteBD, arêteBC, arêteAC, arêteAD, arêteBE, arêteDH, arêteEH, arêteEF, arêteCF, arêteFG, arêteAG, arêteGH = Cube(B, C, G)
O = Midpoint(A, G)
d = Line(A, G)
e = Plane(B, D, E)
f = Line(H, d)
H' = Intersect(f, e)
g = Line(F, d)
F' = Intersect(g, e)
h = Line(C, d)
C' = Intersect(h, e)
poly1, b_1, c', d_1, h', e_1, f' = Polygon(B, C', D, H', E, F')
J = Midpoint(B, H')
i = OrthogonalLine(J, poly1)
K = Midpoint(B, C')
k = Circle(i, K)
X1 = Point(i)
X2 = Point(i)
j = Segment(X1, X2)
M = Point(j)
l = Line(M, c')
p = Circle(M, a / 2, j)
I = Midpoint(D, C')
m = Segment(J, I)
q = Circle(J, a / 2, j)
L = Intersect(m, q)
n = Line(L, c')
N, P = Intersect(n, k)
u = Vector(J, M)
N' = Translate(N, u)
P' = Translate(P, u)
r = Segment(P', N')
Q = Point(Circle[N', Distance[P', N'], Segment[P', N']])
o, R, S, T, U, V, faceN'P'RQ, faceP'RVS, faceN'P'ST, faceN'QUT, faceQRVU, faceSTUV, arêteP'R, arêteN'P', arêteN'Q, arêteQR, arêteP'S, arêteRV, arêteSV, arêteST, arêteN'T, arêteTU, arêteQU, arêteUV = Cube(P', N', Q)