Blame onefile/svg-save.inc.h
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
FILE* svgBegin(const char *filename, double widthMM, double heightMM, double unitsPerMM) {
|
|
Ivan Mahonin |
a5e8d6 |
FILE *f = fopen(filename, "w");
|
|
Ivan Mahonin |
a5e8d6 |
if (f) {
|
|
Ivan Mahonin |
a5e8d6 |
fprintf(f, "<svg width=\"%gmm\" height=\"%gmm\" viewBox=\"0 0 %g %g\">\n",
|
|
Ivan Mahonin |
a5e8d6 |
widthMM, heightMM, widthMM*unitsPerMM, heightMM*unitsPerMM );
|
|
Ivan Mahonin |
a5e8d6 |
}
|
|
Ivan Mahonin |
a5e8d6 |
return f;
|
|
Ivan Mahonin |
a5e8d6 |
}
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
void svgEnd(FILE *f) {
|
|
Ivan Mahonin |
a5e8d6 |
if (!f) return;
|
|
Ivan Mahonin |
a5e8d6 |
fprintf(f, "</svg>\n");
|
|
Ivan Mahonin |
a5e8d6 |
fclose(f);
|
|
Ivan Mahonin |
a5e8d6 |
}
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
void svgAddText(FILE *f, double x, double y, double size, const char *text) {
|
|
Ivan Mahonin |
a5e8d6 |
if (!f) return;
|
|
Ivan Mahonin |
a5e8d6 |
fprintf(f, "<text x=\"%g\" y=\"%g\" style=\"font-size:%g\">%s</text>\n", x, y, size, text);
|
|
Ivan Mahonin |
a5e8d6 |
}
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
void svgAddPath(FILE *f, const char *path, double width, int round) {
|
|
Ivan Mahonin |
a5e8d6 |
if (!f) return;
|
|
Ivan Mahonin |
a5e8d6 |
fprintf(f, "
|
|
Ivan Mahonin |
a5e8d6 |
" d=\"%s\" />\n",
|
|
Ivan Mahonin |
a5e8d6 |
(round ? "stroke-linecap:round;stroke-linejoin:round;" : ""),
|
|
Ivan Mahonin |
a5e8d6 |
width, path );
|
|
Ivan Mahonin |
a5e8d6 |
}
|