vendredi 9 décembre 2016

Un modèle mathématique pour représenter les ammonites avec PSTricks, POV-Ray et Maple

La documentation au format pdf et le fichier source à compiler par la procédure habituelle :
LaTeX => DVIPS => ps2pdf sont ici :
 Tous les fichiers avec les méthodes POV-Ray et Maple ainsi que des versions PSTricks un peu plus étendues sont dans l'archive :
 D'abord, quelques images extraites de la documentation, réalisées avec PSTricks(comme l'image initiale) :
Modèle simplifié
Modèle plus élaboré comprenant les côtes de l'ammonite.

Ammonite avec enroulement serré.

Ammonite avec enroulement lâche.

Un maillage en fil de fer :

 Dont voici le code :

 \documentclass{article}
\usepackage{geometry}
\usepackage{pst-solides3d,pst-math}
%\title{Un modèle mathématique pour les ammonites}
%\date{8 décembre 2016}
%\author{manuel.luque27@gmail.com}
\begin{document}
\begin{center}
\begin{pspicture}(-6.5,-4)(5,5)
  \psset{viewpoint=100 120 60 rtp2xyz,Decran=100,lightsrc=20 60 10 rtp2xyz,solidmemory}%
\pstVerb{/Div {div} def
         /NT 20.5 def    % nbre d'ondulations
         /alpha 83 DegToRad def
         /ri 1.5 def
         /Am ri PI 1 alpha TAN div mul TANH div def
         /Euler 2.71828182846 def
         }%
\defFunction[algebraic]{ammonite}(u,v)
  {(Am+(ri+0.2*cos(NT*u))*cos(v))*cos(u)*Euler^(u/tan(alpha))}
  {(Am+(ri+0.2*cos(NT*u))*cos(v))*sin(u)*Euler^(u/tan(alpha))}
  {ri*sin(v)*Euler^(u/tan(alpha))}
\psSolid[object=surfaceparametree,unit=1,
  base=pi -10 mul 0 0  2 pi mul,
  fillcolor=gray!20,incolor=gray!20,opacity=0.5,
  function=ammonite,ngrid=720 36,linewidth=0.01,grid]%
\end{pspicture}
\end{center}
\end{document}

Les modèles obtenus avec Maple :
> restart : with(plots):
> N := 20.5: alpha := 1.4486; r := 1: A := r/tanh(Pi/tan(alpha));
> plot3d([(A+(r+.1*cos(N*u))*cos(v))*exp(u/tan(alpha))*cos(u), (A+(r+.1*cos(N*u))*cos(v))*exp(u/tan(alpha))*sin(u), r*sin(v)*exp(u/tan(alpha))], u = -10*Pi .. 0, v = -Pi .. Pi, grid = [720, 60], scaling = constrained, style = surface, color = "Chocolate");


> A := r/tanh(Pi/tan(alpha))-1;
> plot3d([(A+(r+.1*cos(N*u))*cos(v))*exp(u/tan(alpha))*cos(u), (A+(r+.1*cos(N*u))*cos(v))*exp(u/tan(alpha))*sin(u), r*sin(v)*exp(u/tan(alpha))], u = -10*Pi .. 0, v = -Pi .. Pi, grid = [720, 60], scaling = constrained, style = surface, color = "Gray");



Les modèles réalisés avec POV-Ray. Les textures sable sont de Friedrich A. Lohmüller :


Les fichiers sources sont dans l'archive indiquée au début.








Aucun commentaire:

Enregistrer un commentaire