- scl.swl [c+]
[..] La conception [swl] openmoji_bzhscl
Code
#define ROUND_1D(X) round(10*(X))/10
// Proposition de drapeau breton pour Openmoji>15.0
int openmoji_bzh_swl(){
scltracefa(§, ƒ, ∅);
scltracefc("scl-%s (%s) : %s\n", sclver(), sclsec(), temps_char(0));
FILE *fid=fopen("./srt/1F3F4-E0066-E0072-E0062-E0072-E0065-E007F_swl.svg",
"w+");
fprintf(fid, "<svg id=\"emoji\" viewBox=\"0 0 72 72\" xmlns=\"http://www.w3.org/2000/svg\">\n");
fprintf(fid, " <g id=\"color\">\n");
fprintf(fid, " <rect x=\"5\" y=\"17\" width=\"62\" height=\"38\" fill=\"#fff\"/>\n");
// Première ligne noire Bro-Sant-Brieg [bsb]
double ya=18.0, dyl=40/9, db=2, xm=33;
fprintf(fid, " <rect x=\"%lf\" y=\"%lf\" width=\"%lf\" height=\"%lf\" fill=\"#000\"/>\n", ROUND_1D(xm), ROUND_1D(ya), ROUND_1D(34-(xm-33)), ROUND_1D(dyl-db)); //-2 pour l'epaisseur de la bordure
// Deuxième ligne noire Bro-Zol [bzl]
ya = ya + dyl-db + dyl;
fprintf(fid, " <rect x=\"%lf\" y=\"%lf\" width=\"%lf\" height=\"%lf\" fill=\"#000\"/>\n", ROUND_1D(xm), ROUND_1D(ya), ROUND_1D(34-(xm-33)), ROUND_1D(dyl));
// Troisième ligne noire Bro-Sant-Maloù [bsm]
ya = ya + dyl + dyl;
fprintf(fid, " <rect x=\"5\" y=\"%lf\" width=\"62\" height=\"%lf\" fill=\"#000\"/>\n", ROUND_1D(ya), ROUND_1D(dyl));
// Quatrième ligne noire Bro-Naoned [bnd]
ya = ya + dyl + dyl;
fprintf(fid, " <rect x=\"5\" y=\"%lf\" width=\"62\" height=\"%lf\" fill=\"#000\"/>\n", ROUND_1D(ya), ROUND_1D(dyl));
// Dernière ligne noire Bro-Roazhon [brn]
ya = ya + dyl + dyl;
fprintf(fid, " <rect x=\"5\" y=\"%lf\" width=\"62\" height=\"%lf\" fill=\"#000\"/>\n", ROUND_1D(ya), ROUND_1D(dyl-db)); //-2 pour l'epaisseur de la bordure
fprintf(fid, " <g fill=\"#000\" stroke=\"#000\" stroke-linejoin=\"round\" stroke-width=\"2\">\n");
double hn_x=7, mx=2;
double dxh=(xm-5-db/2-mx-mx-hn_x*db)/hn_x; //2.0
scltracefc("dxh=%lf\n", dxh);
double hn_y=3, my=1;
double dyh=(dyl-db+dyl+dyl+dyl-my-my-hn_y*db)/hn_y; //3.0
scltracefc("dyh=%lf\n", dyh);
double x0=5+db/2+mx+db/2;
ya = 18.0+my+db/2+dyh;
double xa=x0; //9
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
xa = xa + dxh + db/2 + db/2 + dxh + db/2 + db/2; //18
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
xa = xa + dxh + db/2 + db/2 + dxh + db/2 + db/2; //27
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
xa = xa + dxh + db/2 + db/2 + dxh + db/2 + db/2; //27
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
ya = ya+db/2+db/2+dyh;
xa = x0 + dxh + db/2 + db/2; // 13.5;
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
xa = xa + dxh + db/2 + db/2 + dxh + db/2 + db/2; //22.5
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
xa = xa + dxh + db/2 + db/2 + dxh + db/2 + db/2; //22.5
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
ya = ya+db/2+db/2+dyh;
xa = x0;
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
xa = xa + dxh + db/2 + db/2 + dxh + db/2 + db/2; //18
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
xa = xa + dxh + db/2 + db/2 + dxh + db/2 + db/2; //27
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
xa = xa + dxh + db/2 + db/2 + dxh + db/2 + db/2; //27
fprintf(fid, " <polygon points=\"%lf %lf %lf %lf %lf %lf\"/>\n", ROUND_1D(xa), ROUND_1D(ya), ROUND_1D(xa+dxh), ROUND_1D(ya), ROUND_1D(xa+dxh/2), ROUND_1D(ya-dyh));
fprintf(fid, " </g>\n");
fprintf(fid, " </g>\n");
fprintf(fid, " <g id=\"line\">\n");
fprintf(fid, " <rect x=\"5\" y=\"17\" width=\"62\" height=\"38\" fill=\"none\" stroke=\"#000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"/>\n");
fprintf(fid, " </g>\n");
fprintf(fid, "</svg>\n");
fclose(fid);
scltracefe(§, ƒ, ∅);
return 0;
}
/* ƒ décorée par
le 05-03-2025 23:42:15 */
Sortie
[>..\xpl\src\scl.swl.cpp.openmoji_bzh_swl]
scl-25.03 (gwin64) : 05-03-2025 23:42:15
dxh=1.285714
dyh=2.592593
[<..\xpl\src\scl.swl.cpp.openmoji_bzh_swl]