efficient program to spit out SVG for guitar/uke chord frett diagram
SVG: Add base fret indicator
Zach DeCook 2020-12-26
parent edcd7d0 · commit b184662
-rw-r--r--ccharter.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/ccharter.c b/ccharter.c
index 184ea81..62010ee 100644
--- a/ccharter.c
+++ b/ccharter.c
@@ -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>");
}