|
|
1.1 root 1: #include <stdio.h>
2:
3: #define SZ 512
4:
5: int lasta, lastb;
6: char buf[512];
7: char *back = (char *) 0;
8: int Factor=0;
9: int ncurve=0;
10: int Xoffset = 16;
11: int Yoffset = 100;
12:
13: main(argc, argv)
14: char **argv;
15: {
16: extern int lcnt;
17: int i;
18:
19: switch (argc) {
20: case 5:
21: back = argv[4];
22: case 4:
23: Yoffset = 100-atoi(argv[3]);
24: Xoffset = 16+atoi(argv[2]);
25: case 2:
26: Factor = atoi(argv[1]); /* >0 stretches the letter in x */
27: case 1:
28: break;
29: default:
30: fprintf(stderr, "usage: pcurve ");
31: fprintf(stderr, "[N [dX dY [background]]] < font > script\n");
32: exit(1);
33: }
34:
35: prelude();
36: printf("def curve() {\n");
37: getcurve();
38:
39: runcontour();
40: printf("}\n");
41: printf("x {\n");
42: printf(" curve()\n");
43: for (i = 100; i < lcnt; i += 100)
44: printf(" curve%d()\n", i);
45: printf("}\nx new=old\n");
46: }
47:
48: getcurve()
49: { int a, b, c;
50:
51: for (;;)
52: { if (fgets(buf, 512, stdin) == NULL)
53: return;
54: c = 0;
55: while (strcmp(buf, "1e6") == 0)
56: { c = 1;
57: if (fgets(buf, 512, stdin) == NULL)
58: return;
59: }
60: sscanf(buf, "%d %d", &a, &b);
61: addnode(((a+Xoffset)*SZ)/512, ((b+Yoffset)*SZ)/512, c);
62: }
63: }
64:
65: prelude()
66: {
67: printf("def mapper(t0, t1, f0, f1, h) {\n");
68: printf("if (abs(t0-t1)>1)\n");
69: printf("{ mapper((t0+t1)/2, t1, (f0+f1)/2, f1, h)\n");
70: printf(" mapper(t0, (t0+t1)/2, f0, (f0+f1)/2, h)\n");
71: printf("} else\n");
72: printf(" new[t0, h] = $1[f0, h]\n");
73: printf("}\n");
74: if (back)
75: printf("get \"%s\"\n", back);
76: else
77: printf("x new=y*%d/%d;\n", 255, SZ-1);
78: printf("def setter(aa, b, c, d) {\n");
79: printf(" for (x=aa; x<b; x++)\n");
80: if (back)
81: printf(" new[x,c]=$2[x,c];\n");
82: else
83: printf(" new[x,c]=d;\n");
84: printf("}\n");
85: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.