efficient program to spit out SVG for guitar/uke chord frett diagram
| -rw-r--r-- | ccharter.c | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -4,7 +4,7 @@ #define WIDTH 50 #define HEIGHT 60 int main(int argc, char **argv) { - printf("<svg width=\"65px\" height=\"85px\" " + printf("<svg width=\"75px\" height=\"85px\" " "version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" overflow=\"visible\" " "style=\"stroke-width:2; stroke:black; text-anchor:middle;\" " "viewBox=\"-5 -25 55 85\" " @@ -64,7 +64,7 @@ int main(int argc, char **argv) { for (j=0; j < fretsCount; j++) { if (argv[1][j] > '0' && argv[1][j] <= '9') { printf("<circle cx=\"%d\" cy=\"%d\" r=\"3\"/>\n", - (j * WIDTH) / (fretsCount - 1), (HEIGHT/4) * (argv[1][j] - '0') - baseFret - 7 + (j * WIDTH) / (fretsCount - 1), (HEIGHT/4) * ((argv[1][j] - '0') - baseFret) - 7 ); } else { printf("<text x=\"%d\" y=\"%d\" stroke-width=\"0\">%c</text>\n", @@ -74,13 +74,15 @@ int main(int argc, char **argv) { } // base fret indicator - - /*if (baseFret > 0) { - ctx.alignText = "left"; - ctx.fillText(baseFret + 1, origin.x - 10, origin.y + 11); + + if (baseFret > 0) { + printf("<text stroke-width=\"0\" x=\"%d\" y=\"%d\">%d</text>\n", + -10, 13, baseFret + 1 + ); } else { - ctx.alignText = "left"; - ctx.fillText("3", origin.x - 10, origin.y + 41); - }*/ + printf("<text stroke-width=\"0\" x=\"%d\" y=\"%d\">%d</text>\n", + -10, 43, 3 + ); + } printf("</svg>"); } |