Re: [Boston.pm] Drawing diagrams with circular arcs
Bill Ricker via Boston-pm <[email protected]> Fri, 28 Feb 2025 21:22:20 -0500
| Newsgroups | gmane.comp.lang.perl.perl-mongers.boston |
|---|---|
| Message-ID | <CAAbKA3V5Ou-194rv333y-Qh8+CTa19OLS5fAttFr+oKBoW4=tg@mail.gmail.com> |
SGkgU3RldmUhCgpJIGFtIHdvcmtpbmcgb24gYSBwZXQgcHJvamVjdCB3aGVyZSBJIHdhbnQgdG8g ZHJhdyBkaWFncmFtcyBjb25zaXN0aW5nIG9mCj4gY29ubmVjdGVkIGNpcmN1bGFyIGFyY3MuCj4K CkkgcHJlc3VtZSB5b3UgbWVhbiBzZWN0b3Itb2YtY2lyY2xlIGFyY3MsIHF1aXRlIHBvc3NpYmx5 IHNlbWktY2lyY2xlIGFyY3MsCmFzIG9wcG9zZWQgdG8gZnVsbCBjaXJjbGVzPwpBcmUgeW91IG9w cG9zZWQgdG8gZWxsaXBzZXMsIHNwbGluZXMsIGFuZCByYWlscm9hZCAic3BpcmFsIiB0aGF0IGlz IGRvdWJseQpkaWZmZXJlbnRpYWJsZSB3aGVyZSBpdCBidXR0LWpvaW50cyB0byBhIHN0cmFpZ2h0 PwoKICBJIHRoaW5rIGl0IGNvdWxkIGJlIGRvbmUgaW4gVmlzaW8sCj4gYnV0IEkgbm8gbG9uZ2Vy IGhhdmUgdGhhdC4KPgoKUG9zc2libHkgbXkgZmF2b3JpdGUgTVMgT2ZmaWNlIGNvbXBvbmVudC4K VGhlIHN0YW5kYXJkIGFuc3dlciB0byAibGlrZSBWaXNpbyBidXQgRkxPU1MiIGlzIExpYnJlT2Zm aWNlIERyYXcuCk90aGVyIGFsdGVybmF0aXZlcyBzZWUgaHR0cHM6Ly9hbHRlcm5hdGl2ZXRvLm5l dC9zb2Z0d2FyZS9taWNyb3NvZnQtdmlzaW8vCgpNeSBwcmVmZXJyZWQgcHJvZ3JhbW1pbmcgbGFu Z3VhZ2UgaXMgUGVybC4KPgpCdXQgSSBoYXZlIG5vdCBhY3RpdmVseSB1c2VkIGl0IGZvciBtYW55 IHllYXJzLgo+ClRzay4gR2V0IGJhY2sgYXQgaXQgOi1ECgpNeSBjdXJyZW50IFBDIHJ1bnMgV2lu ZG93cyAxMCwgYnV0IEkgY291bGQgYWxzbyB1c2UgV2luZG93cyAxMSBmb3IKPiBkZXZlbG9wbWVu dC4KCgpXZWxsIEknZCBzYXkgaXQncyBoYWxmLXBhc3QgdGltZSB5b3Ugc2V0IHVwIGZvciBhIExp bnV4IGR1YWwtYm9vdC4KV2luZG93cyAxMSBsb29rcyB0byBiZSBhIGxpdHRsZSB0b28gc3RyYW5n ZS4KClRoaXMgaXMgcGVybCA1LCB2ZXJzaW9uIDI4LCBzdWJ2ZXJzaW9uIDIgKHY1LjI4LjIpIGJ1 aWx0IGZvcgo+CgpTaW5jZSB3ZSdyZSB1cCB0byBQZXJsIDUuMDQwIHdpdGggNS4wNDEgaW4gZmlu YWwgZGV2ZWxvcG1lbnQsIHllYWggeW91Cm1pZ2h0IGp1c3Qgd2FudCB0byB1cGRhdGUgUGVybC4K R29vZCBuZXdzIElJUkMgaXMgdGhleSd2ZSByZXN1bWVkIHByZWJ1aWx0IGJpbmFyaWVzLgoKSSB0 aGluayB0aGUgR0QgbGlicmFyeSBjb3VsZCBkbyB0aGlzLCBhbmQgdGhlcmUgYXJlIHNvbWUgUGVy bCBBUElzIHRvIGl0Lgo+CgpZZXMsIEdEIDxodHRwczovL21ldGFjcGFuLm9yZy9wb2QvR0QjRHJh d2luZy1Db21tYW5kcz4gYW5kIEdEOjpTaW1wbGUgb24KQ1BBTiBjYW4gZHJhdyBjaXJjdWxhciBh bmQgZWxsaXB0aWNhbCBhcmNzIChhbmQgaWYgZmlsbGVkLCBzZWN0b3JzKS4KKEkgdXNlZCB0aGUg ZmlsbGVkIGVsbGlwdGljYWwgYXJjIHNlY3RvcnMgaW4gR0QucG0gdG8gcmVjcmVhdGUgYW5kIHRo ZW4KcmVmaW5lIG15IGNhLjE5OTAgTVNDIEVHQSBjb2xvciBzb2xpZCAoV2FuZyBMYWJzIHRvd2Vy IDEpLikKCkJ1dCB0aGUgbGlicmFyeSBpdHNlbGYgc2VlbXMgb2xkIGFuZCBtYXliZSBkaWZmaWN1 bHQgdG8gaW5zdGFsbCBvbiBXaW5kb3dzLgo+CgpHRCBsaWJyYXJpZXMgaGF2ZW4ndCBiZWVuIGEg cHJvYmxlbSBmb3IgbWUgb24gTGludXggYXQgbGVhc3QuCkkgcmVsb2FkIEdELnBtIGV0YyBhbm51 YWxseSB3aGVuIEkgcGVybGJyZXcgdGhlIG5ldyByZWxlYXNlIG9mIFBlcmwgYW5kCnJlbG9hZCBt eSBsaWJzLgpJIGhhdmVuJ3QgYnVpbHQgR0QucG0gb24gV2luZG93cyBpbiBzbyBsb25nIEkgY2Fu J3QgcGVyc29uYWxseSBhZHZpc2UuCkNQQU5UUyA8aHR0cDovL21hdHJpeC5jcGFudGVzdGVycy5v cmcvP2Rpc3Q9R0QlMjAyLjgzO21heHZlcj0xPiBzaG93cyAxCnN1Y2Nlc3MgZWFjaCBvbiBNU1dJ TjMyIHdpdGggUGVybCA1LjQwLlswMV0sIDUuMzguMiwgNS4zNi4zLCA1LjMyLjEgYW5kIEdECjIu ODMuCkl0IGZhaWxlZCBvbmNlIHdpdGggZGV2IFBlcmwgYnVpbGRzIDUuNDEuWzU2N10sIGJ1dCB0 aGF0J3Mgbm90IGFsYXJtaW5nOwp0aGV5J3ZlIHJldmVydGVkIGEgY291cGxlIGxlc3MtYmFja3dh cmRzLWNvbXBhdGlibGUtdGhhbi1leHBlY3RlZCBjaGFuZ2VzCmluIGRldi4KKEkgbm90aWNlIHRo YXQgR0QgaGFzIGhhZCBhbiBvbmdvaW5nIHByb2JsZW0gd2l0aCBPcGVuQlNEIGFuZCBTb2xhcmlz LApXVEFGPykKCldoYXQgZG8gcGVvcGxlIHN1Z2dlc3Q/Cj4KCkZvciBtYW55IGdyYXBoLWRpYWdy YW1zLCB0aGUgc2Vuc2libGUgYXBwcm9hY2ggaXMgZm9yIGEgUGVybCBwcm9ncmFtIHRvCmVtaXQg YSB0ZXh0dWFsIGZvcm0gb2YgdGhlIGdyYXBoLCBlLmcuIEdyYXBoVml6IGRvdCBsYW5ndWFnZSBm aWxlcywgd2hpY2gKZ2V0IHR1cm5lZCBpbnRvIFNWRyBhbmQvb3IgUE5HIGJ5IEdyYXBoVml6IGNv bW1hbmRsaW5lIHRvb2wgKHVzdWFsbHkgY2FsbGVkCidkb3QnIGFmdGVyIHRoZSBkZWZhdWx0ICJF bmdpbmUiKikuCmh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9HcmFwaFZpejIKaHR0cHM6Ly9ncmFw aHZpei5vcmcvZG9jcy9sYXlvdXRzL2RvdC8KKihIaW50OiBpbiBHViwgZGlmZmVyZW50IGJ1aWx0 LWluIGxheW91dCBydWxlcyBhcmUgY2FsbGVkICJFbmdpbmVzIi4pCgpTZXR0aW5nIHRoZSBkZWZh dWx0IGVkZ2UgdHlwZSBpbiBhIEdyYXBoVml6IGdyYXBoIHRvICpzcGxpbmVzPWN1cnZlZCogd2ls bApnaXZlICpub3QqIGNpcmN1bGFyIGJ1dCAqc3BsaW5lKiBjdXJ2ZXMuCkV4YW1wbGUKPGh0dHBz Oi8vZWRvdG9yLm5ldC8/ZW5naW5lPWRvdCMlMjMlMjBQbGFjZSUyMHRoZSUyMGN1cnNvciUyMGlu c2lkZSUyMCUyMmdyYXBoJTIyJTIwdG8lMjBnZXQlMjBzb21lJTIwcmVmYWN0b3JpbmclMjBvcHRp b25zJTBBJTBBZ3JhcGglMjAlN0IlMEElMEElMDlzcGxpbmVzJTNEY3VydmVkJTNCJTIwJTBBJTA5 JTBBJTIwJTIwJTIwJTIwJTIzJTIwVG8lMjByZWZhY3RvciUyMG5vZGVzJTJDJTIwcGxhY2UlMjB0 aGUlMjBjdXJzb3IlMjBsZWZ0JTIwdG8lMjBhJTIwbm9kZSUyMG5hbWUlMEElMjAlMjAlMjAlMjBh JTIwLS0lMjBiJTBBJTIwJTIwJTIwJTIwYSUyMC0tJTIwYyUzQiUwQSUyMCUyMCUyMCUyMGElMjAt LSUyMGQlM0IlMEElMEElMjAlMjAlMjAlMjAlMjMlMjBIb3ZlciUyMG92ZXIlMjBjb2xvciUyMG5h bWVzJTIwdG8lMjBnZXQlMjBhJTIwY29sb3IlMjBwaWNrZXIlMEElMjAlMjAlMjAlMjBiJTIwLS0l MjBiJTIwJTVCY29sb3IlM0RibHVlJTVEJTBBJTIwJTIwJTIwJTIwYiUyMC0tJTIwZCUyMCU1QmNv bG9yJTNEJTIyJTIzZmYwMDAwJTIyJTVEJTNCJTBBJTBBJTIwJTIwJTIwJTIwJTIzJTIwR2V0JTIw Y29tcGxldGlvbiUyMHdoZW4lMjBhc3NpZ25pbmclMjBhJTIwc2hhcGUlMjBvciUyMGNvbG9yJTBB JTIwJTIwJTIwJTIwYiUyMCU1QnNoYXBlJTNEYm94JTJDJTIwY29sb3IlM0R5ZWxsb3clNUQlM0Il MEElMEElMjAlMjAlMjAlMjBhJTNCJTIwJTIzJTIwWW91JTIwY2FuJTIwcmVtb3ZlJTIwb3B0aW9u YWwlMjAlM0IlMjBieSUyMHBsYWNpbmclMjB0aGUlMjBjdXJzb3IlMjBsZWZ0JTIwdG8lMjBhJTIw c2VtaWNvbG9uJTBBJTdEJTBBPi4KKG9ubGluZSBHViBkb3QgZWRpdG9yL3R1dG9yaWFsL2V4YW1w bGUgISEgbmVhdCEpCkFGQUlLLCBHcmFwaFZpeiBkb2Vzbid0IGhhdmUgc2VtaWNpcmNsZXMgYXMg YW4gb3B0aW9uPyBCdXQgaXQgZG9lcyBsaWtlCmRyYXdpbmcgZnVsbCAzNjDCsCBjaXJjbGVzLgoK Rm9yIG5vdyBJIGp1c3Qgd2FudCB0byBkcmF3IHRoZSBkaWFncmFtcy4gIEJ1dCBsYXRlciBJIG1p Z2h0IGFsc28gd2FudCB0bwo+IGNvdW50IHRoZSBudW1iZXIgb2YgZWRnZXMsIHZlcnRpY2VzLCBh bmQgZmFjZXMuICBUaGF0IGlzIHdoeSBJIGFtCj4gY29uc2lkZXJpbmcgdXNpbmcgYSBwcm9ncmFt Lgo+CgpBIGdvb2QgcmVhc29uIGZvciB1c2luZyBhIGRlY2xhcmF0aXZlIHRleHQgZm9ybWF0IG9m IHRoZSBkaWFncmFtIGFzIGFuCmludGVybWVkaWFyeSwgc3VjaCBhcyBHcmFwaFZpeidzIGRvdCBs YW5ndWFnZS4KCk9uZSBsYXN0IHBvaW50LiAgVGhpcyBjb3VsZCBiZSBhIGdvb2QgZmlyc3QgdGVz dCAoZm9yIG1lKSBvZiBBSSBjb2RlIGFzc2lzdAo+IHRvb2xzLiAgQnV0IEkgdGhpbmsgdGhleSB1 c3VhbGx5IGdlbmVyYXRlIFB5dGhvbiBvciBKYXZhc2NyaXB0LCBhbmQgSSBoYXZlCj4gbm90IHVz ZWQgZWl0aGVyIG9mIHRob3NlIGxhbmd1YWdlcy4gIEFyZSB0aGVyZSBBSSB0b29scyB0aGF0IGdl bmVyYXRlCj4gUGVybD8KPgoKYSkgSSBmaW5kIHRoYXQgdGhvdWdodCB1bmNsZWFuLgpiKSB0aGUg Y29tbW9uIExMTSBoYWxsdWNpbmF0b3J5LW9yYWNsZXMgYXBwYXJlbnRseSBjcmVhdGUgZmFpcmx5 IGdvb2QgUGVybApzaW5jZSB3ZSd2ZSBwdXQgc28gbXVjaCBvZiBpdCBvbmxpbmUgZm9yIHRoZW0g dG8gdmlvbGF0ZSBjb3B5cmlnaHRzIG9mLiAoQXMKaW4sIGlmIGl0IGdpdmVzIHlvdSBjb2RlIEkg d3JvdGUgYXMgIlNhbWUgTGljZW5zZSBhcyBQZXJsIiBhbmQgZG9lc24ndCB0ZWxsCnlvdSB0aGF0 LCBpdCdzIHRoZWZ0LikgT3ZpZCAoQ3VydGlzKSBoYXMgYmVlbiBibG9nZ2luZyBhYm91dCB1c2lu ZyB0aGVtLgpIZSdzIGEgZ29vZCBlbm91Z2ggY29kZXIgaGUgY2FuIGZpeCB3aGF0ZXZlciBlcnJv cnMgdGhlIExMTSBoYWxsdWNpbmF0ZXMsCnNvIGl0IG1heSBzYXZlIGhpbSB0aW1lIGFuZCBub3Qg Y3JlYXRlIG1vcmUgdGVjaG5pY2FsIGRlYnQgZHVlIHRvIGhpZGRlbgpidWdzIGJ1dCAuLi4KCi8v IEJpbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkJv c3Rvbi1wbSBtYWlsaW5nIGxpc3QKQm9zdG9uLXBtQHBtLm9yZwpodHRwczovL21haWwucG0ub3Jn L21haWxtYW4vbGlzdGluZm8vYm9zdG9uLXBtCg==