Utilisateur:Abdelouahab/hypotrochoïde
Un article de Wikipédia, l'encyclopédie libre.
Sommaire |
[modifier] Paramétrisation d'une hypotrochoïde
Hypotrochoides, sont des courbes planes décrite par un point lié à un cercle mobile (C) roulant sans glisser sur et interieurement à un cercle de base (C0), le cercle roulant étant plus petit que le fixe. Ces courbes ont été étudiée par Durer en 1525, Romer en 1674 et Bernoulli en 1725:
- Préfix provenant du grec hupo:au-dessous et trokhos:roue.
On pose q = a / b (donc q>1) et d=k*b,avec a le rayon du cercle fixe et b est celui du cercle roulant(mobile) et d la distance du point au centre du cercle mobile. Une paramétrisation de l'hypotrochoïde est alors :
Complexe :
- z = (a − b)exp(it) + dexp( − i(q − 1)t)
soit
- qz = a((q − 1)exp(it) + kexp( − it(q − 1))
q(x + iy) = a(q − 1)cos(t) + ia(q − 1)sin(t) + akcos((q − 1)t) − iaksin((q − 1)t)
par comparaison partie réelle et partie imaginaire on obtient:
- qx = a(q − 1)cos(t) + kacos((q − 1)t));
- qy = a(q − 1)sin(t) − kasin((q − 1)t));
avec q=a/b et k=d/b
Si on pose a = R et b=r et t = θ, on obtient les formles ci-dessous:
Les hypocycloide sont des classes spéciales avec d = r et les ellipses avec R = 2r le paramètre p variant de 0 à 2*Pi
[modifier] Paramétrisation de la surface
On introduit un deuxième paramètre de la façon suivante :
- x = sin(v)(a((1 − 1 / q)cos(u) + (k / q)cos(q − 1)u));
- y = sin(v)(a((1 − 1 / q)sin(u) − (k / q)sin((q − 1)u));
- z = ccos(v);
[modifier] Définition de la surface,Texture et tracé pour Mathematica5.2 version etudiante ou prof
hupoTrokhosDisq[a_, c_, k_, q_][u_, v_] =
{Sin[v]*(a*((1 - 1/q)*Cos[u] + (k/q)*Cos[(q - 1)*u])), Sin[v]*(a*((1 - 1/q)*Sin[u] - (k/q)*Sin[(q - 1)*u])), c*Cos[v]};
Paramétrisation de la surface (avec texture)
[modifier] Texture
hupoTrokhosDisque[a_, c_, k_, q_][u_, v_] =
Module[ {red, purple}, Append[ hupoTrokhosDisq[a, c, k, q][u, v],{RGBColor[red = Abs[Sin[q*u]],purple = Abs[Sin[20*v]], 1 - red*purple],EdgeForm[]}]];
Tracé
hupoTrokhosGraph[a_, c_, k_, q_][u_, v_] :=
ParametricPlot3D[ Evaluate[hupoTrokhosDisque[a, c, k, q][u, v]], {u, 0, 2Pi, Pi/80}, {v, 0, Pi, Pi/100}, ImageSize -> {di, di}, Boxed -> False, Axes -> False, ViewPoint -> {0, 0, 8}, Lighting -> False, Epilog -> {Text["q= ", {0.85, 0.95}], Text[q, {0.95, 0.95}],Text["k= ", {0.85, 0.95}], Text[k, {0.85, 0.95}]}];
GraphicsArray[Table[hupoTrokhosGraph[3,0.3, k, q][u, v], {q, 2, 9}, {k, 0.25, 2, 0.5}]];
Auteur: Abdelouahab 30 mars 2006 à 12:24 (CEST)