samedi 27 décembre 2014

Hyperboloïde à une nappe : 2 maillages (5)

La commande est \pstHyperboloidC[options](x,yz)
Le maillage est défini par l’option ngrid=n1 n2. n1 nombre de méridiens et n2 nombre d’étages.
la hauteur de l’hyperboloïde est définie par l’option h=8 et le rayon des bases par R=4 (valeurs par défaut).
On peut choisir le type de maillage par “quadrilatères” ou “triangles” avec l’option : triangularmesh qui est désactivée par défaut.



Les fichiers (hyperboloid-Carreaux-v2.pdf, hyperboloid-Carreaux-v2.tex) :

vendredi 26 décembre 2014

Hyperboloïde à une nappe à surface carrelée

La commande est \pstHyperboloidC[options](x,yz)
Le maillage est défini par l’option ngrid=n1 n2. n1 nombre de méridiens et n2 nombre d’étages.
la hauteur de l’hyperboloïde est définie par l’option h=8 et le rayon des bases par R=4 (valeurs par défaut).
Le nombre de facettes intérieur et extérieur se calcule par la formule :
n1 ×n2 ×4×2
Les fichiers (hyperboloid-Carreaux.pdf, hyperboloid-Carreaux.tex) :

Version 2 :
Fichiers (hyperboloid-Carreaux-v2.pdf, hyperboloid-Carreaux-v2.tex) :

mardi 23 décembre 2014

Sections d'un hyperboloïde de révolution à une nappe (3)

Dans cette partie (3), le maillage de l’hyperboloïde est défini par une hyperbole en rotation autour de l’axe. Une macro est dédiée au dessin de l’hyperboloïde : \pstHyperboloidB[options](x,y,z).
Remarque : il devrait être possible de regrouper les 2 types de maillages dans une même commande.
Les options sont indiquées dans le document. Voici quelques images qui sont les équivalentes du maillage comme surface réglée.

Les fichiers (sections-hyperboloide-B.pdf,sections-hyperboloide-B.tex) :

lundi 22 décembre 2014

Sections d'un hyperboloïde de révolution à une nappe (2)

Dans cette partie (2), le maillage de l’hyperboloïde est défini comme une surface réglée. Une macro est dédiée au dessin de l’hyperboloïde : \pstHyperboloid[options](x,y,z)
Voici les options dont les valeurs par défaut sont indiquées :
  • [R=4] : rayon de la base ;
  • [h=8] : hauteur ;
  • [ngrid=36 20] : maillage : nombre de droites et nombre de cercles ;
  • [base=0 360 0 1] : on tourne autour de l’axe de 0 à 360o et la hauteur varie suivant la relation :  (k −0.5)H avec 0 < k < 1.
  • [AngleTorsion=150] : décalage angulaire entre les extrémités de la droite génératrice. (voir le document)
Quelques sections :
Les fichiers (sections-hyperboloide.pdf, sections-hyperboloide.tex) :

mardi 16 décembre 2014

Sections d'un hyperboloïde de révolution à une nappe (1)

Quelques exemples de sections d'un hyperboloïde  de révolution à une nappe, réalisés avec PSTricks.
Comme section, vous reconnaîtrez aisément,  une section elliptique, 2 types de section hyperboliques, section par une bande parallèle et une section parabolique.
 Fichiers (hyperboloides4.pdf, hyperboloides4.tex) :
Remarque : le code n'est pas optimisé. On peut considérer le fichier source comme un brouillon.

mardi 9 décembre 2014

Hyperboloïde à une nappe avec PSTricks : animations

Au format Gif :
Avec le package animate d'Alexander Grahn : l'animation est incluse dans le pdf.
Fichiers (hyperboloide-rotation.pdf, hyperboloide-rotation.tex) :





lundi 8 décembre 2014

Hyperboloïde à une nappe avec PSTricks

L’hyperboloïde à une nappe est une surface réglée. On considère la génératrice A1A2, définie par la hauteur du cylindre H, le rayon R et le décalage angulaire θ entre les 2 extrémités.
 La valeur de θ  permet de régler l’étranglement au milieu de l’hyperboloïde.
Suivant le signe de θ les génératrices s’enroulent à droite ou à gauche.
Voici diverses représentation possibles :
 Les fichiers (hyperboloides2.tex, hyperboloides2.pdf) :

Révision (10 décembre) : l'origine du repère est au centre de l'hyperboloïde (hyperboloides3.tex, hyperboloides3.pdf) :

Ou bien compilez le fichier suivant (première version) :

\documentclass{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[latin1]{inputenc}%
\usepackage[T1]{fontenc}
\usepackage{lmodern}
%\usepackage[garamond]{mathdesign}
%\renewcommand{\ttdefault}{lmtt}
\usepackage{pst-solides3d}
\usepackage{array,amsmath}
\definecolor{JaunePale}{rgb}{0.89 0.79 0.435}
\title{Hyperboloïde à une nappe}
\date{8 décembre 2014}
\begin{document}
\maketitle
\section{Principe}
L'hyperboloïde à une nappe est une surface réglée. On considère la génératrice $A_1A_2$, définie par la hauteur du cylindre $H$, le rayon $R$ et le décalage angulaire $\theta$ entre les 2 extrémités.
\begin{center}
\begin{pspicture}(-8,-3)(8,9)
\psset{solidmemory}
\psset{viewpoint=50 35 30 rtp2xyz,lightsrc=viewpoint,Decran=50}
\psframe(-5,-3)(5,9)
\pstVerb{/decalage 60 def /H 6 def /Rayon 3 def}%
\psSolid[object=plan,
   definition=equation,
   args={[0 0 1 H neg]},
   action=none,
   name=planH]
\psset{plan=planH}
\psProjection[object=cercle,resolution=360,
   args=0 0 Rayon,linecolor=blue,range=0 360]
\psProjection[object=cercle,resolution=360,
   args=0 0 Rayon 2 div,linecolor=red,range=0 decalage]
\psSolid[object=plan,
   definition=equation,
   args={[0 0 1 0]},
   action=none,
   name=plan0]
\psset{plan=plan0}
\psProjection[object=cercle,resolution=360,
   args=0 0 Rayon,linecolor=blue,range=0 360]
\psProjection[object=texte,
   fontsize=20,linecolor=red,
   PSfont=Symbol,
   pos=cc,plan=planH,
   text=q,phi=120
](2,1)%
\psPoint(Rayon,0,0){A1}\psdot(A1)
\psPoint(Rayon,0,H){A'1}\psdot(A'1)
\psLineIIID[linestyle=dashed](Rayon,0,H)(Rayon neg,0,H)
\psPoint(0,0,0){O1}\psPoint(0,0,H){O2}
\psPoint(Rayon decalage cos mul,Rayon decalage sin mul,H){A2}
\psline[linecolor=red](A1)(A2)\psdots(O1)(O2)(A2)\psline(O2)(A2)
\psline[linestyle=dashed](A1)(A'1)
\uput[d](A1){$A_1$}
\uput[u](A2){$A_2$}
\gridIIID[Zmin=0,Zmax=6](-3,3)(-3,3)
\end{pspicture}
\end{center}
On en déduit les équations paramétriques de l'hyperboloïde :
\[
\left\{
\begin{array}[m]{l}
x=R\big((1-k)\cos(t)+k\cos(t+\theta)\big)\\[1em]
y=R\big((1-k)\sin(t)+k\sin(t+\theta)\big)\\[1em]
z=kH
\end{array}
\right.
\]
Les variations des paramètres sont : $k\in[0,1]$ et $t\in[0,2\pi]$. La valeur de $\theta$ permet de régler l'étranglement au milieu de l'hyperboloïde. Suivant le signe de $\theta$ les génératrices s'enroulent à droite ou à gauche.
\section{Exemples et diverses représentation possibles}
\begin{center}
\begin{pspicture}(-8,-3)(8,9)
\psset{unit=1}
\psset{viewpoint=50 60 30 rtp2xyz,lightsrc=viewpoint,Decran=50}
\psframe(-5,-3)(5,9)
\pstVerb{/iface 0 def}%
\pstVerb{/decalage 150 3.14159265359 mul 180 div def /H 6 def /Rayon 3 def}%
\defFunction[algebraic]{hyperboloidonesheet}(u,v)%
  {Rayon*(cos(u)*(1-v)+v*(cos(u+decalage)))}
  {Rayon*(sin(u)*(1-v)+v*(sin(u+decalage)))}
  {v*H}%
\psSolid[object=surfaceparametree,
  ngrid=36 18,
  hue=0 1 0.5 1, %fillcolor=JaunePale,
  incolor=yellow!20,%show=all,num=all,
   fcol= 0 1 35{/Rang exch def
  Rang 2 div cvi 2 mul cvi Rang eq {/Damier {iface (Red)} def}{/Damier {iface (Cyan)} def}ifelse
   18{
   Damier
   /iface iface 1 add def
   } repeat
  } for,
  base=0 2 Pi mul 0 1,
  function=hyperboloidonesheet]
\gridIIID[Zmin=0,Zmax=6](-3,3)(-3,3)
\end{pspicture}
\end{center}

\begin{center}
\begin{pspicture}(-8,-3)(8,8)
\psset{unit=1}
\psset{viewpoint=50 60 30 rtp2xyz,lightsrc=viewpoint,Decran=50}
\psframe(-5,-3)(5,8)
\pstVerb{/iface 0 def}%
\pstVerb{/decalage -90 3.14159265359 mul 180 div def /H 4 def /Rayon 3 def}%
\defFunction[algebraic]{hyperboloidonesheet}(u,v)%
  {Rayon*(cos(u)*(1-v)+v*(cos(u+decalage)))}
  {Rayon*(sin(u)*(1-v)+v*(sin(u+decalage)))}
  {v*H}%
\psSolid[object=surfaceparametree,
  ngrid=36 18,
   fcol= 0 1 71{/Rang exch def
  Rang 2 div cvi 2 mul cvi Rang eq {/Damier {iface (Black) iface 1 add (White)} def}{/Damier {iface (White) iface 1 add (Black)} def}ifelse
   9{
   Damier
   /iface iface 2 add def
   } repeat
  } for,
  base=0 2 Pi mul 0 1,
  function=hyperboloidonesheet]
\gridIIID[Zmin=0,Zmax=4](-3,3)(-3,3)
\end{pspicture}
\end{center}

\begin{center}
\begin{pspicture}(-8,-3)(8,8)
\psset{unit=1}
\psset{viewpoint=50 60 30 rtp2xyz,lightsrc=viewpoint,Decran=50}
\psframe(-5,-3)(5,8)
\pstVerb{/iface 0 def}%
\pstVerb{/decalage -120 3.14159265359 mul 180 div def /H 4 def /Rayon 3 def}%
\defFunction[algebraic]{hyperboloidonesheet}(u,v)%
  {Rayon*(cos(u)*(1-v)+v*(cos(u+decalage)))}
  {Rayon*(sin(u)*(1-v)+v*(sin(u+decalage)))}
  {v*H}%
\psSolid[object=surfaceparametree,
  ngrid=36 18,
  incolor=yellow!20,
  fcol= 0 1 35{/Rang exch def
  Rang 2 div cvi 2 mul cvi Rang eq {/Damier {iface (Black) iface 1 add (White)} def}{/Damier {iface (White) iface 1 add (Black)} def}ifelse
   9{
   Damier
   /iface iface 2 add def
   } repeat
  } for,
  base=0 2 Pi mul 1 0,
  function=hyperboloidonesheet]
\gridIIID[Zmin=0,Zmax=4](-3,3)(-3,3)
\end{pspicture}
\end{center}
\begin{center}
\begin{pspicture}(-5,-4)(5,7)
\psset{viewpoint=50 60 30 rtp2xyz,lightsrc=viewpoint,Decran=50}
\psframe(-5,-4)(5,7)
\pstVerb{/decalage 150 3.14159265359 mul 180 div def /H 4 def /Rayon 2 def}%
\defFunction[algebraic]{hyperboloidonesheet}(u,v)%
  {Rayon*(cos(u)*(1-v)+v*(cos(u+decalage)))}
  {Rayon*(sin(u)*(1-v)+v*(sin(u+decalage)))}
  {v*H}%
\psSolid[object=surfaceparametree,pointsize=3.5pt,
  ngrid=36 18,
  tablez=0 0.1 4 {} for,
 zcolor=0 1 0.5 1,
  base=0 2 Pi mul 1 0 ,
  function=hyperboloidonesheet]
\gridIIID[Zmin=0,Zmax=4](-3,3)(-3,3)
\end{pspicture}
\end{center}
\end{document}

vendredi 5 décembre 2014

Trou noir et géodésiques avec PSTricks

La revue “Pour la Science" propose sur le site : http://www.scilogs.fr/, un ensemble de blogs scientifiques dont les rédacteurs sont des collaborateurs attitrés ou occasionnels de la revue. Didier Nordon et Jean-Paul Delahaye comptent parmi ceux qui tiennent régulièrement une rubrique chaque mois dans la revue. Didier Nordon rédige le “Bloc-notes” où il note et commente des idées et des paradoxes d’une manière drôle et d’une écriture concise, c’est très instructif et on l’impression d’être plus intelligent après la lecture et de s’être bien amusé, de plus les textes sont éclairés par des dessins de Matyo, qui commentent très intelligemment et avec beaucoup d’esprit les réflexions  de Didier Nordon.
Jean-Paul Delahaye propose avec “Logique & Calcul", un rendez-vous avec les mathématiques. C’est souvent ardu, mais rigoureux, sans aucune concession avec des facilités de vulgarisation, l’écriture est plaisante et des schémas clairs et nombreux soutiennent le propos, c’est dans la continuité des articles de Martin Gardner auquel le dernier numéro de “Pour la Science"(Décembre 2014) rend hommage.
C’est le titre d’un article d’un autre auteur, Richard Taillet :
http://www.scilogs.fr/signal-sur-bruit/dessine-moi-un-trou-noir/
qui m’a rappelé le livre que Jean-Pierre Petit avait sobrement intitulé “Trou noir” et qui avait été publié vers 1980, par les éditions Belin sous l’égide de la revue “Pour la Science", il n’est plus réédité mais Jean-Pierre Petit met à la disposition des lecteurs tous ses ouvrages gratuitement et en plusieurs langues sur le site :
http://www.savoir-sans-frontieres.com/
Les “Aventures d’Anselme Lanturlu” se présentent comme des bandes dessinées, très bien dessinées, les dessins sont simples, plaisants et efficaces, où par le truchement d’un certain nombre de personnages comme Anselme Lanturlu, Sophie, Albert(Einstein), Léon le pélican toujours avec un cigare dans le bec, Tirésias l’escargot souvent la cible des remarques moqueuses de Léon, un oiseau coiffé d’une toque de professeur d’Oxford et d’autres, un grand nombre de thèmes scientifiques sont développés et illustrés.
Dans le “Trou noir”, Anselme Lanturlu et ses amis abordent le thème des géodésiques et du trou noir avec des explications lumineuses et des dessins très explicites.
Est-ce qu’il est possible de dessiner un trou noir et des géodésiques avec PStricks, dans les limites posées par Richard Taillet :
«Lorsqu’on cherche à dessiner une surface sur laquelle les distances obéissent à ces règles bizarres, on obtient des surfaces courbées, que l’on peut parfois visualiser dans un espace tridimensionnel. On dit qu’on a réalisé un plongement.
C’est notamment le cas pour le plan équatorial autour d’une masse sphérique et ce plongement est alors appelé un paraboloïde de Flamm. Son équation est donnée par z2= 4a(r −a) où r désigne la coordonnée radiale, qu’on mesurerait dans le plan équatorial avec une règle usuelle, et a une distance appelée le rayon de Schwarzschild et proportionnelle à la masse du corps central responsable de la courbure. »
Bien sûr des logiciels de calcul scientifique comme Maple ou Mathematica sont plus adaptés à ce type de représentation, comme, par exemple, l’a fait Jason Cantarella, avec Mathematica :
http://www.jasoncantarella.com/downloads/RelativityGeodesics.pdf
C’est plus long avec PSTricks, mais l’avantage(peut-être) c’est que l’on peut personnaliser ses schémas. Ce n’est pas interactif, mais on peut facilement réaliser des animations avec le package animate d’Alexandre Grahn.
La représentation du paraboloïde de Flamm ne pose aucun problème, en voici deux versions :
Pour les géodésiques, le package pst-ode permet de résoudre le système d’équations différentielles et de représenter des géodésiques du paraboloïde de Flamm..
 Une animation :

Le fichier source et le pdf sont dans le répertoire :

8 décembre 2014 :
Alexander Grahn, l'auteur du package pst-ode me rappelle, fort à propos, que  la commande \pstODEsolve possède une option  `AlgebraicOutputFormat'  permettant des expressions en notation infixée pour la composition de la liste des résultats : cela simplifie les calculs (postscript devient inutile).

%\pstODEsolve[algebraic]{
thetar}{0 1}{0}{8}{299}{\InitCond}{\Geodesiques}
    %\pstVerb{
    %    /tabthetarZ [thetar] def
    %    /XYZ  {
    %    0 2 tabthetarZ length 2 sub {/iC exch def
    %    tabthetarZ iC get /Theta exch RadToDeg def
    %    tabthetarZ iC 1 add get /radius exch def
    %    radius Theta cos mul
    %    radius Theta sin mul
    %    radius 1 sub sqrt 2 mul
    %    } for
    %    } def }%
    \pstODEsolve[algebraic,algebraicOutputFormat]{XYZ}{
      x[1]*cos(x[0]) |
      x[1]*sin(x[0]) |
      2*sqrt(x[1]-1)
    }{0}{8}{299}{\InitCond}{\Geodesiques}
    \listplotIIID[linecolor=red]{XYZ}}
 Les fichiers tiennent compte de cette modification.