Exemples de la distribution (extras)

En cliquant sur une imagette, vous accéderez au source et à l'image. En cliquant sur cette dernière, vous ouvrirez le fichier PDF associé.

butterfly.xpconic.xpdecorate.xpdemoivre.xpdensityplot.xpdipole.xpgolden_rect.xphyperboloid.xplog.xplorenz.xpminkowski.xpplot_data.xpR_demo.xp
saddle.xp [ source ] [ fermer ]
saddle.xp
/* -*-ePiX-*- */
// fake 3D by layering
#include "epix.h"
using namespace ePiX;

// function to plot
P F(double u, double v)
{
  return P(u, v, 0.25*(u+v)*(u-v));
}

int main() 
{
  bounding_box(P(-3,-2),P(3,2));
  unitlength("1in");
  picture(6,4);

  // solid black background (before we move the camera)
  begin();
  fill();
  gray(1);
  rect(P(-3,-2), P(3,2));

  white();
  label(P(0, y_max), P(0,-4),
	"\\textbf{A quadratic saddle $\\mathbf{z=k(x^2-y^2)}$ and tangent plane}", b);

  camera.at(P(6,12,7));
  camera.look_at(P(0,0,-0.25));

  domain R(P(-2,-2), P(2,2), mesh(24,24), mesh(48,48));

  // clip to bottom half space
  clip();
  clip_box(P(-2,-2,0), P(2,2,-2));

  // draw bottom half of saddle, shaded
  fill();
  surface(F, R);
  fill(false);

  // and re-draw the wiremesh in color
  bold();
  green();
  plot(F, R);
  label(F(0,2), P(0,-4), "$\\mathbf{z<0}$", b);

  // (x,y)-plane
  red();
  grid(24,24);
  label(P(2,0,0), P(-4,0), "$\\mathbf{z=0}$", l);

  plain();
  black();

  // clip to top half space, draw top half of saddle
  clip_box(P(-2,-2,0), P(2,2,2));
  fill();
  surface(F, R);
  fill(false);

  // fake transparency: re-draw (x,y)-plane lightly
  red();
  pen(0.2);
  grid(24,24);

  // and plot top half of wiremesh in color
  bold();
  blue();
  plot(F, R);

  rgb(0.5,0.5,1);
  label(F(-2,0), P(4,4), "$\\mathbf{z>0}$", tr);

  end();
}
spherical.xpstereo-left.xpstereo-right.xptori.xpvfield.xp