Illustration de la méthode conoscopique

Auteur ou autrice : Luís Nobre Gonçalves.

Mise en ligne le 18 janvier 2025

Image du résultat de l’exemple

Cet exemple illustre l’utilisation du package featpost présent sur le CTAN. Ce package permet de réaliser des dessins en trois dimensions (et en deux dimensions). Il est très pratique pour illustrer de la géométrie basique dans l’espace.

Code



% conoscopy.mp
% L. Nobre G. 
% 2013

input featpost3Dplus2D;

verbatimtex \documentclass{article}\begin{document} etex

beginfig(1);
  f := (6,5,5);
  Spread := 125;
  numeric maja, raya, angphi, angthe, decl, valy, valz, rectsiz;
  color majav, aphiv, aphip, majbv, perpv, perpvl;
  maja = 0.72;
  raya = 0.5;
  angphi = 15;
  angthe = 30;
  rectsiz = 0.06;
  majav = (0,0,maja);
  aphiv = raya*(cosd(angphi),sind(angphi),0);
  aphip = raya*(sind(angphi),-cosd(angphi),0);
  majbv = planarrotation( majav, aphip, angthe );
  perpv = ncrossprod(majbv,aphiv);
  decl = Z(perpv)/(Y(perpv)++X(perpv));
  valy = maja*raya/((decl*raya)++maja);
  valz = valy*decl;
  if angthe>90: valy:=-valy; fi;
  perpv := blue*valz-N(aphip)*valy;
  perpvl = maja*N(perpv);
  spheroid( black, majav, raya );
  drawoptions( dashed (withdots scaled 0.25) );
  cartaxes( 1, 1, 1 );
  draw rigorouscircle( black, blue, raya );
  draw rp(black)--rp(-aphiv);
  draw rp(black)--rp(-majbv);
  %draw rp(black)--rp(-majav);
  %draw rp(black)--rp(-aphip);
  %draw rp(black)--rp(-perpv);
  draw ellipticpath( black, majbv, aphiv );
  drawoptions();
  drawarrow rp((raya,0,0))--rp((1,0,0));
  drawarrow rp((0,raya,0))--rp((0,1,0));
  drawarrow rp(majav)--rp((0,0,1));
  drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue );
  drawarrow rp(black)--rp(aphiv);
  drawarrow rp(black)--rp(majbv);
  %draw rp(black)--rp(majav);
  %drawarrow rp(black)--rp(aphip);
  drawarrow rp(black)--rp(perpvl);
  drawoptions( withpen pencircle scaled 1.3pt );
  draw subpath (-1,15) of ellipticpath( black, majbv, aphiv ) dashed evenly;
  %draw ellipticpath( black, aphip, majav ) dashed evenly;
  % draw ellipticpath( black, green, 2*blue ) dashed evenly;
  drawoptions();
  squareangline( perpv, aphiv, black, rectsiz);
  squareangline( perpv, majbv, black, rectsiz);
  squareangline( majbv, aphiv, black, rectsiz);
  angline(majav, perpv, black, maja-raya, btex $\theta$ etex)(rt);
  pickup pencircle scaled 3.6pt;
  draw rp(-aphiv); %label.bot("aphiv",rp(aphiv));
  draw rp(-majbv); %label.lft("majbv",rp(majbv));
  %draw rp(majav); label.rt("majav",rp(majav));
  %draw rp(-aphip); label.rt("aphip",rp(aphip));
  draw rp(perpv); %label.rt("perpv",rp(perpvl));
  label.llft(btex $\vec{n}^{\prime\prime}$ etex,rp(aphiv));
  label.ulft(btex $\vec{n}^{\prime}$ etex,rp(majbv));
  label.top(btex $\vec{p}$ etex,rp(perpvl));
endfig;


verbatimtex \end{document} etex

end;


Mots clés : sphère3Dfeatpostrepèreangle

Cet exemple fait partie de la collection d’exemples Documentation de featpost.

Fichiers

Télécharger l’archive complète