|
|
1.1 root 1: .IS
2: ARC {
3: var a1, b1, c1,
4: a2, b2, c2;
5: start ~ center + abs(radius)*cis(startang);
6: end ~ center + abs(radius)*cis(endang);
7: midway ~ center + abs(radius)*cis(midang);
8: im(start-center)*re(cis(startang))
9: ~ re(start-center)*im(cis(startang));
10: im(end-center)*re(cis(endang))
11: ~ re(end-center)*im(cis(endang));
12: im(midway-center)*re(cis(midang))
13: ~ re(midway-center)*im(cis(midang));
14: a1 ~ 2*(re(end)-re(start));
15: b1 ~ 2*(im(end)-im(start));
16: c1 ~ -re(start)*re(start) - im(start)*im(start)
17: + re(end)*re(end) + im(end)*im(end);
18: a2 ~ 2*(re(end)-re(midway));
19: b2 ~ 2*(im(end)-im(midway));
20: c2 ~ -re(midway)*re(midway) - im(midway)*im(midway)
21: + re(end)*re(end) + im(end)*im(end);
22: a1*re(center) + b1*im(center) ~ c1;
23: a2*re(center) + b2*im(center) ~ c2;
24: startang ~ atan2 (start - center);
25: midang ~ atan2 (midway - center);
26: endang ~ atan2 (end - center);
27: radius ~ abs (start - center);
28: radius ~ abs (midway - center);
29: radius ~ abs (end - center);
30: midway ~ start;
31: }
32: .IE
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.