- sclgeom [c+]
[..] La fonction [scl] expolygonescl
Code
int expolygone_xpl(){
scltracefa(§, ƒ, ∅);
scltracefc("scl-%s (%s) : %s\n\n", sclver(), sclsec(), temps_char(0));
// Génération d'un polygone simple et ouvert (en aleatoire)
int pn=36, pi;
double *θ = newtablin(pn+1, 0, 2*π), cθ;
double *ρ = rand(pn, 0, 1, 2), cρ;
double *px=new double[pn], *py=new double[pn];
for(pi=0;pi<pn;pi++){
cθ=θ[pi]; cρ=ρ[pi];
px[pi]=cρ*cos(cθ); py[pi]=cρ*sin(cθ);
}
std::string legend="Polygone";
int epn_0_1; double r=-0.1;
tic(); void **eplg = expolygone(pn, px, py, r, &epn_0_1);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_1=(double*)eplg[0], *epy_0_1=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_0_2; r=-0.2; tic(); eplg=expolygone(pn, px, py, r, &epn_0_2);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_2=(double*)eplg[0], *epy_0_2=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_0_3; r=-0.3; tic(); eplg=expolygone(pn, px, py, r, &epn_0_3);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_3=(double*)eplg[0], *epy_0_3=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_0_4; r=0.4; tic(); eplg=expolygone(pn, px, py, r, &epn_0_4);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_4=(double*)eplg[0], *epy_0_4=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_0_5; r=0.5; tic(); eplg=expolygone(pn, px, py, r, &epn_0_5);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_5=(double*)eplg[0], *epy_0_5=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_0_6; r=0.6; tic(); eplg=expolygone(pn, px, py, r, &epn_0_6);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_6=(double*)eplg[0], *epy_0_6=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_0_7; r=0.7; tic(); eplg=expolygone(pn, px, py, r, &epn_0_7);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_7=(double*)eplg[0], *epy_0_7=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_0_8; r=0.8; tic(); eplg=expolygone(pn, px, py, r, &epn_0_8);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_8=(double*)eplg[0], *epy_0_8=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_0_9; r=0.9; tic(); eplg=expolygone(pn, px, py, r, &epn_0_9);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_0_9=(double*)eplg[0], *epy_0_9=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_1_0; r=1; tic(); eplg=expolygone(pn, px, py, r, &epn_1_0);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_1_0=(double*)eplg[0], *epy_1_0=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_1_1; r=1.1; tic(); eplg=expolygone(pn, px, py, r, &epn_1_1);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_1_1=(double*)eplg[0], *epy_1_1=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_1_2; r=1.2; tic(); eplg=expolygone(pn, px, py, r, &epn_1_2);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_1_2=(double*)eplg[0], *epy_1_2=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_1_3; r=1.3; tic(); eplg=expolygone(pn, px, py, r, &epn_1_3);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_1_3=(double*)eplg[0], *epy_1_3=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_1_4; r=1.4; tic(); eplg=expolygone(pn, px, py, r, &epn_1_4);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_1_4=(double*)eplg[0], *epy_1_4=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_1_5; r=1.5; tic(); eplg=expolygone(pn, px, py, r, &epn_1_5);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_1_5=(double*)eplg[0], *epy_1_5=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
//
int epn_1_6; r=1.6; tic(); eplg=expolygone(pn, px, py, r, &epn_1_6);
scltracefc("r=%lf %lf [ms]\n", r, tac());
double *epx_1_6=(double*)eplg[0], *epy_1_6=(double*)eplg[1];
legend += ";r="+num_str<double>(r);
std::string imgname=std::string(ƒ)+".svg",
imgpath="./srt/"+imgname;
graf_dis(imgpath.c_str(), pn, px, py,
"curve", epn_0_1, epx_0_1, epy_0_1,
"curve", epn_0_2, epx_0_2, epy_0_2,
"curve", epn_0_3, epx_0_3, epy_0_3,
"curve", epn_0_4, epx_0_4, epy_0_4,
"curve", epn_0_5, epx_0_5, epy_0_5,
"curve", epn_0_6, epx_0_6, epy_0_6,
"curve", epn_0_7, epx_0_7, epy_0_7,
"curve", epn_0_8, epx_0_8, epy_0_8,
"curve", epn_0_9, epx_0_9, epy_0_9,
"curve", epn_1_0, epx_1_0, epy_1_0,
"curve", epn_1_1, epx_1_1, epy_1_1,
"curve", epn_1_2, epx_1_2, epy_1_2,
"curve", epn_1_3, epx_1_3, epy_1_3,
"curve", epn_1_4, epx_1_4, epy_1_4,
"curve", epn_1_5, epx_1_5, epy_1_5,
"curve", epn_1_6, epx_1_6, epy_1_6,
"grid", "on", "subtitlex", imgname.c_str(),
"legend", legend.c_str(), "legcorn", "urp",
"titlex", "Expansion de polygone", "linespeca", "-a",
"axis", "equal", ∅);
//---------------------------------------------------------------------
//[>LIBÈRE MÉMOIRE]
//---------------------------------------------------------------------
free(epx_0_1); epx_0_1=∅; free(epy_0_1); epy_0_1=∅;
free(epx_0_2); epx_0_2=∅; free(epy_0_2); epy_0_2=∅;
free(epx_0_3); epx_0_3=∅; free(epy_0_3); epy_0_3=∅;
free(epx_0_4); epx_0_4=∅; free(epy_0_4); epy_0_4=∅;
free(epx_0_5); epx_0_5=∅; free(epy_0_5); epy_0_5=∅;
free(epx_0_6); epx_0_6=∅; free(epy_0_6); epy_0_6=∅;
free(epx_0_7); epx_0_7=∅; free(epy_0_7); epy_0_7=∅;
free(epx_0_8); epx_0_8=∅; free(epy_0_8); epy_0_8=∅;
free(epx_0_9); epx_0_9=∅; free(epy_0_9); epy_0_9=∅;
free(epx_1_0); epx_1_0=∅; free(epy_1_0); epy_1_0=∅;
free(epx_1_1); epx_1_1=∅; free(epy_1_1); epy_1_1=∅;
free(epx_1_2); epx_1_2=∅; free(epy_1_2); epy_1_2=∅;
free(epx_1_3); epx_1_3=∅; free(epy_1_3); epy_1_3=∅;
free(epx_1_4); epx_1_4=∅; free(epy_1_4); epy_1_4=∅;
free(epx_1_5); epx_1_5=∅; free(epy_1_5); epy_1_5=∅;
free(epx_1_6); epx_1_6=∅; free(epy_1_6); epy_1_6=∅;
//---------------------------------------------------------------------
//[<LIBÈRE MÉMOIRE]
//---------------------------------------------------------------------
scltracefe(§, ƒ, ∅);
return 0;
}
/* ƒ décorée par
le 21-03-2025 15:57:21 */
Sortie
[>..\xpl\src\sclgeom.xpl.cpp.expolygone_xpl]
scl-25.03 (gwin64) : 21-03-2025 15:57:21
[<..\src\sclgeom.cpp.simpligone>] invalid intersection [36]
r=-0.100000 436.611000 [ms]
[<..\src\sclgeom.cpp.simpligone>] invalid intersection [52]
r=-0.200000 423.812900 [ms]
[<..\src\sclgeom.cpp.simpligone>] invalid intersection [64]
r=-0.300000 405.976100 [ms]
r=0.400000 499.990800 [ms]
r=0.500000 561.059600 [ms]
r=0.600000 536.392000 [ms]
r=0.700000 528.315800 [ms]
r=0.800000 524.200200 [ms]
r=0.900000 529.021900 [ms]
r=1.000000 556.978500 [ms]
r=1.100000 550.682800 [ms]
r=1.200000 544.798600 [ms]
r=1.300000 517.033100 [ms]
r=1.400000 534.995300 [ms]
r=1.500000 533.604400 [ms]
r=1.600000 527.758800 [ms]
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<< END OF DISLIN / VERSION 11.3.2 <<
<< Date : 21.03.2025 Time : 15:57:29 Pageformat: DA4L <<
<< Vectors : 19387 Warnings: 0 Fileformat: SVG <<
<< Metafile: ./srt/expolygone_xpl.svg <<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[<..\xpl\src\sclgeom.xpl.cpp.expolygone_xpl]