ePiX2, fichiers SVG

svgtest2.cc [ source ]
#include "epix2.h"
using namespace ePiX2;
 
Point torus(double u, double v)
{
  double r(0.5), R(1.+r*Cos(u));
  return Point(R*Cos(v), R*Sin(v), r*Sin(u));
}
 
Point f(double t)
{
  return torus(t/60.0, t/140.0);
  //return Point(Sin(0.02*M_PI*t), Sin(0.03*M_PI*t), Cos(0.01*M_PI*t));
}
 
Point g(double t)
{
  return torus(0.0625+t/60.0, t/140.0);
  //return Point(Sin(0.02*M_PI*t), Sin(0.03*M_PI*t), Cos(0.01*M_PI*t));
}
 
int main() {
 
  World world;
 
  Camera camera;
  Picture picture(Pair(-2,-2), Pair(2,2), "400x400pt");
 
  Color back_color(Black()); //RGB(1,1,0.8));
 
  picture.backing(back_color);
 
  Duo_Pen halo(bold(Red()), Pen(back_color, "4pt"));
 
  world << Circle().stroke(bbold(Yellow()));
  rotations();
 
  for (int i=0; i<420; ++i)
    world << Segment(f(i), f(i+1)).stroke(halo)
	  << Segment(g(i), g(i+1)).stroke(halo)
	  << Segment(f(i), g(i-2)).stroke(plain(Yellow()));
 
  //  world.fog(Black(), 0.75,6);
 
  camera.at(Point(1.5, 6.5, 3));
  world.flash(picture, camera);
 
  picture.crop();
 
  print(picture, "svgtest3.svg", SVG());
}