Sommaire


Installer ce fichier dans votre répertoire de travail.

k3bezier.h
/* ------------------------------------ */
/*  Save as :   k3bezier.h              */
/* ------------------------------------ */
void G_3_Cubic_Bezier_2d(

CTRL_splot  w,

pt2d P0,
pt2d P1,
pt2d P2,
pt2d P3,
pt2d P4,
pt2d P5,
pt2d P6,
pt2d P7,
pt2d P8,
pt2d P9
)
{
tvalue t;

  t.min  =   0;  
  t.max  =   1;  
  t.step =  .01;

FILE   *fp = fopen("a_main.plt","w");
fprintf(fp," set zeroaxis lt 8\n"
           " set grid\n\n"
           " plot [%0.3f:%0.3f] [%0.3f:%0.3f]\\\n"
           " \"curve1\" with linesp lt 3 pt 1,\\\n"
           " \"curve2\" with linesp lt 3 pt 1,\\\n"
           " \"curve3\" with linesp lt 3 pt 1,\\\n"
           " \"ctrl1\"  with linesp lt 4 pt 4,\\\n"
           " \"ctrl2\"  with linesp lt 4 pt 4,\\\n"
           " \"ctrl3\"  with linesp lt 4 pt 4\n\n",
             w.xmin,w.xmax,w.ymin,w.ymax);
fclose(fp);

        fp = fopen("curve1","w");
 for(t.value=t.min; t.value<=t.max; t.value+=t.step)
     fprintf(fp," %6.5f   %6.5f\n",
             Cubic_Bezier_x_2d(t.value,P0,P1,P2,P3),
             Cubic_Bezier_y_2d(t.value,P0,P1,P2,P3));
      fclose(fp);

        fp = fopen("curve2","w");
 for(t.value=t.min; t.value<=t.max; t.value+=t.step)
     fprintf(fp," %6.5f   %6.5f\n",
             Cubic_Bezier_x_2d(t.value,P3,P4,P5,P6),
             Cubic_Bezier_y_2d(t.value,P3,P4,P5,P6));
      fclose(fp);

        fp = fopen("curve3","w");
 for(t.value=t.min; t.value<=t.max; t.value+=t.step)
     fprintf(fp," %6.5f   %6.5f\n",
             Cubic_Bezier_x_2d(t.value,P6,P7,P8,P9),
             Cubic_Bezier_y_2d(t.value,P6,P7,P8,P9));
      fclose(fp);


        fp = fopen("ctrl1","w");
     fprintf(fp," %6.5f   %6.5f\n",P0.x,P0.y);
     fprintf(fp," %6.5f   %6.5f\n",P1.x,P1.y);
     fprintf(fp," %6.5f   %6.5f\n",P2.x,P2.y);
     fprintf(fp," %6.5f   %6.5f\n",P3.x,P3.y);
             fclose(fp);

        fp = fopen("ctrl2","w");
     fprintf(fp," %6.5f   %6.5f\n",P3.x,P3.y);
     fprintf(fp," %6.5f   %6.5f\n",P4.x,P4.y);
     fprintf(fp," %6.5f   %6.5f\n",P5.x,P5.y);
     fprintf(fp," %6.5f   %6.5f\n",P6.x,P6.y);
             fclose(fp);

        fp = fopen("ctrl3","w");
     fprintf(fp," %6.5f   %6.5f\n",P6.x,P6.y);
     fprintf(fp," %6.5f   %6.5f\n",P7.x,P7.y);
     fprintf(fp," %6.5f   %6.5f\n",P8.x,P8.y);
     fprintf(fp," %6.5f   %6.5f\n",P9.x,P9.y);
             fclose(fp);

}
/* ------------------------------------ */
void G_3_wp_Cubic_Bezier_2d(

CTRL_splot  w,

pt2d P0,
pt2d P1,
pt2d P2,
pt2d P3,
pt2d P4,
pt2d P5,
pt2d P6,
pt2d P7,
pt2d P8,
pt2d P9
)
{
tvalue t;

  t.min  =   0;  
  t.max  =   1;  
  t.step =  .01;

FILE   *fp = fopen("a_main.plt","w");
fprintf(fp," set zeroaxis lt 8\n"
           " set grid\n\n"
           " plot [%0.3f:%0.3f] [%0.3f:%0.3f]\\\n "
           " \"curve1\" with linesp lt 3 pt 1,\\\n"
           " \"curve2\" with linesp lt 3 pt 1,\\\n"
           " \"curve3\" with linesp lt 3 pt 1\n\n",
             w.xmin,w.xmax,w.ymin,w.ymax);
 fclose(fp);

        fp = fopen("curve1","w");
 for(t.value=t.min; t.value<=t.max; t.value+=t.step)
     fprintf(fp," %6.5f   %6.5f\n",
             Cubic_Bezier_x_2d(t.value,P0,P1,P2,P3),
             Cubic_Bezier_y_2d(t.value,P0,P1,P2,P3));
      fclose(fp);

        fp = fopen("curve2","w");
 for(t.value=t.min; t.value<=t.max; t.value+=t.step)
     fprintf(fp," %6.5f   %6.5f\n",
             Cubic_Bezier_x_2d(t.value,P3,P4,P5,P6),
             Cubic_Bezier_y_2d(t.value,P3,P4,P5,P6));
      fclose(fp);

        fp = fopen("curve3","w");
 for(t.value=t.min; t.value<=t.max; t.value+=t.step)
     fprintf(fp," %6.5f   %6.5f\n",
             Cubic_Bezier_x_2d(t.value,P6,P7,P8,P9),
             Cubic_Bezier_y_2d(t.value,P6,P7,P8,P9));
      fclose(fp);
}
/* ------------------------------------ */
/* ------------------------------------ */