--> Rotation et homothétie On considère dans le plan complexe le carré $ABCD$ dont les sommets ont pour affixes :
$z_A=1+\text{i}$ 4 $z_B=-1+\text{i}$ 4 $z_C=-1-\text{i}$ 4 $z_D=1-\text{i}$.

Xmin = -1.5 Xmax = 1.5 Ymin = -1.5 Ymax = 1.5 traceG() traceX() traceY() A = [1,1] B = [-1,1] C = [-1,-1] D = [1,-1] texte("O",[-0.12,-0.12]) point(A);texte("A",[1.05,1.05]) point(B);texte("B",[-1.15,1.05]) point(C);texte("C",[-1.15,-1.15]) point(D);texte("D",[1.05,-1.15]) trait = 2 segment(A,B) segment(A,D) segment(C,B) segment(C,D)

La forme exponentielle de chacune des affixes est :
$z_A = \sqrt{2}\text{e}^{\text{i}\frac{\pi}{4}}$ 4$z_B = \sqrt{2}\text{e}^{\text{i}\frac{3\pi}{4}}$ 4$z_C = \sqrt{2}\text{e}^{-\text{i}\frac{3\pi}{4}}$ 4$z_D = \sqrt{2}\text{e}^{-\text{i}\frac{\pi}{4}}$

On va transformer chacun de ces points en effectuant une rotation de centre $O$ et d'angle $\alpha$.
Pour cela il suffit de multiplier leur affixe par $\text{e}^{\text{i}\alpha}$ : en effet, le module de la nouvella affixe restera inchangé (on sera donc sur un même cercle de centre $O$) et l'argument augmentera de $\alpha$ (on aura bien tourné d'un angle $\alpha$).
Notons $A'$, $B'$, $C'$ et $D'$ les images des points $A$, $B$, $C$ et $D$ dans la rotation de centre $O$ et d'angle $\alpha$.
On a alors :
$z_{A'}=z_A\times\text{e}^{\text{i}\alpha}$ $=$ $\sqrt{2}\text{e}^{\text{i}\frac{\pi}{4}}\times\text{e}^{\text{i}\alpha}$ $=$ $\sqrt{2}\text{e}^{\text{i}\left( \frac{\pi}{4}+\alpha \right)}$.
$z_{B'}=z_B\times\text{e}^{\text{i}\alpha}$ $=$ $\sqrt{2}\text{e}^{\text{i}\frac{3\pi}{4}}\times\text{e}^{\text{i}\alpha}$ $=$ $\sqrt{2}\text{e}^{\text{i}\left( \frac{3\pi}{4}+\alpha \right)}$.
$z_{C'}=z_C\times\text{e}^{\text{i}\alpha}$ $=$ $\sqrt{2}\text{e}^{-\text{i}\frac{3\pi}{4}}\times\text{e}^{\text{i}\alpha}$ $=$ $\sqrt{2}\text{e}^{\text{i}\left( -\frac{3\pi}{4}+\alpha \right)}$.
$z_{D'}=z_D\times\text{e}^{\text{i}\alpha}$ $=$ $\sqrt{2}\text{e}^{-\text{i}\frac{\pi}{4}}\times\text{e}^{\text{i}\alpha}$ $=$ $\sqrt{2}\text{e}^{\text{i}\left( -\frac{\pi}{4}+\alpha \right)}$.

Et on transforme ces nouveaux points en effectuant l'homothétie de centre $O$ et de rapport $k\in\mathbb{R}$.
Il suffit pour cela de simplement multiplier les affixes par $k$.
En effet, si le point $M'(z')$ et l'image de $M(z)$ dans l'homothétie de centre $O$ et de rapport $k$, on a alors :
$\overrightarrow{OM'} = k\overrightarrow{OM}$ $\Longleftrightarrow$ $z_{M'}-z_O = k(z_M-z_O)$ $\Longleftrightarrow$ $z_{M'}=k\times z_M$.
Notons $A''$, $B''$, $C''$ et $D''$ les images des points $A'$, $B'$, $C'$ et $D'$ dans l'homothétie de centre $O$ et de rapport $k$.
On a alors :

$z_{A''} = kz_{A'}$ $=$ $k\sqrt{2}\text{e}^{\text{i}\left( \frac{\pi}{4}+\alpha \right)}$ $=$ $k\sqrt{2}\left( \cos\left(\dfrac{\pi}{4}+\alpha\right)+\text{i}\sin\left(\dfrac{\pi}{4}+\alpha\right) \right)$.

$z_{B''} = kz_{B'}$ $=$ $k\sqrt{2}\text{e}^{\text{i}\left( \frac{3\pi}{4}+\alpha \right)}$ $=$ $k\sqrt{2}\left( \cos\left(\dfrac{3\pi}{4}+\alpha\right)+\text{i}\sin\left(\dfrac{3\pi}{4}+\alpha\right) \right)$.

$z_{C''} = kz_{C'}$ $=$ $k\sqrt{2}\text{e}^{\text{i}\left( -\frac{3\pi}{4}+\alpha \right)}$ $=$ $k\sqrt{2}\left( \cos\left(-\dfrac{3\pi}{4}+\alpha\right)+\text{i}\sin\left(-\dfrac{3\pi}{4}+\alpha\right) \right)$.

$z_{D''} = kz_{D'}$ $=$ $k\sqrt{2}\text{e}^{\text{i}\left( -\frac{\pi}{4}+\alpha \right)}$ $=$ $k\sqrt{2}\left( \cos\left(-\dfrac{\pi}{4}+\alpha\right)+\text{i}\sin\left(-\dfrac{\pi}{4}+\alpha\right) \right)$.

Dans l'algorithme ci-dessous, on prend $\alpha = \dfrac{\pi}{10} $ et $k=0,7$.

Xmin = -1.5 Xmax = 1.5 Ymin = -1.5 Ymax = 1.5 traceG() traceX() traceY() // Le carré initial A = [1,1] B = [-1,1] C = [-1,-1] D = [1,-1] texte("O",[-0.12,-0.12]) point(A);texte("A",[1.05,1.05]) point(B);texte("B",[-1.15,1.05]) point(C);texte("C",[-1.15,-1.15]) point(D);texte("D",[1.05,-1.15]) trait = 2 segment(A,B) segment(A,D) segment(C,B) segment(C,D) // La fonction de transformation function transf(P,a,k){ Q = P modP = racineCarrée(P[0]*P[0]+P[1]*P[1]) cosaP = P[0]/modP sinaP = P[1]/modP Q[0] = modP*k*( cosaP*cos(a)-sinaP*sin(a) ) Q[1] = modP*k*( sinaP*cos(a)+sin(a)*cosaP ) return Q; } trait = 1 A1 = transf(A,%PI/10,0.7) B1 = transf(B,%PI/10,0.7) C1 = transf(C,%PI/10,0.7) D1 = transf(D,%PI/10,0.7) point(A1) point(B1) point(C1) point(D1) trait = 2 segment(A1,B1) segment(A1,D1) segment(C1,B1) segment(C1,D1)

On propose maintenant d'animer plusieurs transformations successives en prenant $\alpha=0,1$ et $k=0.91$.

Xmin = -1 Xmax = 1 Ymin = -1 Ymax = 1 // Le carré initial var A = [1,1] var B = [-1,1] var C = [-1,-1] var D = [1,-1] segment(A,B) segment(A,D) segment(C,B) segment(C,D) // La fonction de transformation function transf(P,a,k){ var Q = [0,0] modP = racineCarrée(P[0]*P[0]+P[1]*P[1]) cosaP = P[0]/modP sinaP = P[1]/modP Q[0] = modP*k*( cosaP*cos(a)-sinaP*sin(a) ) Q[1] = modP*k*( sinaP*cos(a)+sin(a)*cosaP ) return Q; } var a = 0.1 var k = 0.91 function evolution(){ A = transf(A,a,k) B = transf(B,a,k) C = transf(C,a,k) D = transf(D,a,k) segment(A,B) segment(A,D) segment(C,B) segment(C,D) } setInterval(function (){evolution()},500)