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