From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 23578 invoked from network); 18 Dec 2023 16:15:23 -0000 Received: from cgl.ntg.nl (5.39.185.202) by inbox.vuxu.org with ESMTPUTF8; 18 Dec 2023 16:15:23 -0000 Received: from localhost (localhost [127.0.0.1]) by cgl.ntg.nl (Postfix) with ESMTP id ECB1E483DA4 for ; Sun, 17 Dec 2023 23:26:14 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at cgl.ntg.nl Received: from cgl.ntg.nl ([127.0.0.1]) by localhost (cgl.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6ak0LHyH9Ao6 for ; Sun, 17 Dec 2023 23:26:14 +0100 (CET) Received: from cgl.ntg.nl (localhost [127.0.0.1]) by cgl.ntg.nl (Postfix) with ESMTP id 703CE483ECA for ; Sun, 17 Dec 2023 23:24:57 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by cgl.ntg.nl (Postfix) with ESMTP id D0B59483BA0 for ; Sun, 17 Dec 2023 23:24:13 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at cgl.ntg.nl Received: from cgl.ntg.nl ([127.0.0.1]) by localhost (cgl.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sPNa0ijqG_VD for ; Sun, 17 Dec 2023 23:24:11 +0100 (CET) Received: from resqmta-a1p-077435.sys.comcast.net (resqmta-a1p-077435.sys.comcast.net [96.103.146.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by cgl.ntg.nl (Postfix) with ESMTPS id ECF43483B9F for ; Sun, 17 Dec 2023 23:24:10 +0100 (CET) Received: from resomta-a1p-077049.sys.comcast.net ([96.103.145.227]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 256/256 bits) (Client did not present a certificate) by resqmta-a1p-077435.sys.comcast.net with ESMTP id Ez49rlUvd8gLTEzXQrebeL; Sun, 17 Dec 2023 22:23:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcastmailservice.net; s=20211018a; t=1702851788; bh=e/l46PeawWDZTU7qURtycDy+WCte5WjZfFgzFxJJFOE=; h=Received:Received:From:Content-Type:Mime-Version:Subject: Message-Id:Date:To:Xfinity-Spam-Result; b=VSLTQyKa9ncN3CD0yINuJhYWcWRiDfVSeXDew93OFgPHBOtRs1UcF5DdwGsfNxrMH jOieE12h80HLTfD0iKvUOkfM+5DBKvt12e3jBjx9Z7kgapuVOcZdyEwuANTXdmHwc+ gjP8eznWAwqs6NO8qvc810CTmxUWv7em3/7kf2dPVGSg/W2gFvuCXvd60DEK7xQPR+ Fon16bRH1xVS45TdeW8puVpWApVFW0vLMJ8cR8cJOyC8MymIHuvvT9QCYznHcoKV46 atfq4JC0xg45t68zmMq5iqxW8XDVDI1gxm2GWg2tsbG2xzscBTXauDBas9gpT9Ibsb 5ezJAxRw7bXCQ== Received: from smtpclient.apple ([IPv6:2605:b40:1449:4200:416f:7584:fee:ba5e]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 256/256 bits) (Client did not present a certificate) by resomta-a1p-077049.sys.comcast.net with ESMTPA id EzWsrYYCsjzktEzWxrcS9P; Sun, 17 Dec 2023 22:22:44 +0000 Content-Type: multipart/mixed; boundary="Apple-Mail=_3B15FC26-45D1-40CD-92C9-D10467B17752" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\)) Message-Id: Date: Sun, 17 Dec 2023 15:22:34 -0700 To: mailing list for ConTeXt users X-Mailer: Apple Mail (2.3774.200.91.1.1) Message-ID-Hash: B6VMYLHJ7XCOHYWDNK6J4GN643BJ6PJQ X-Message-ID-Hash: B6VMYLHJ7XCOHYWDNK6J4GN643BJ6PJQ X-MailFrom: gavinpublic@icloud.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list Reply-To: mailing list for ConTeXt users Subject: [NTG-context] Seeking advice for module that draws globes List-Id: mailing list for ConTeXt users Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Gavin via ntg-context Cc: Gavin --Apple-Mail=_3B15FC26-45D1-40CD-92C9-D10467B17752 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hello ConTeXters, I wrote a little ConTeXt module for drawing globes. I would love some = advice on how to improve it and share it. The code is quite short (about = 250 lines). Most of the work is done by Lua, which reads the data files = and calculates paths. These paths are passed to MetaFun, which draws the = globe. Below is an example document with the output. (I attached a small .png = of the output for the mailing list. The output PDF has excessive = detail.) The module (code and data) is on GitHub at = https://github.com/GavinPolhemus/luageo. \usemodule [luageo] \startMPpage GlobeDiameter =3D 10cm ; fill fullcircle scaled GlobeDiameter withcolor .9white ; % Fill a = circle with the water color. drawglobe(23, 0) scaled GlobeDiameter withcolor .75white ;% Draw the = land, centered on the given latitude and longitude. draw fullcircle scaled GlobeDiameter withcolor black ; % Add a = border, if you want. \stopMPpage --Apple-Mail=_3B15FC26-45D1-40CD-92C9-D10467B17752 Content-Disposition: inline; filename=luageoTestMPpage.png Content-Type: image/png; x-unix-mode=0644; name="luageoTestMPpage.png" Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAPAAAADwCAYAAAA+VemSAAAAAXNSR0IArs4c6QAAAERlWElmTU0A KgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA8KADAAQAAAAB AAAA8AAAAADV6CrLAAABn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxu czp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJE RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMi PgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpl eGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVs WERpbWVuc2lvbj4xMTgzPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4 ZWxZRGltZW5zaW9uPjExODM8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNj cmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K96qxyAAAQABJREFUeAHt3fezfklR P/CHFXPEDBLuBpaclrAICEtYJAmGAkoFlR8o1LK0yj/FKsv8EwZALXJWWDJIDgsrcQERUFQMKMbv 975med/tz+w5z3POE276PF117syZ6enu6eme6ZlznnNv9f8OYbGHnWuAmm91q1stqrrl//d//7fx /vqv//qWKvuv//qvxX//938v/ud//qelX/rSlxauv//7v1/88z//8+IrX/nK4qtf/Wqr+7//+7+G p7G27vG55JJLGj1pylOnQvnXfd3XtRTvb/qmb1p867d+6+I7v/M7F9///d+/+N7v/d7F93zP9yy+ 4Ru+YXHrW9+6pfDQBuQDaKTMfe1jLVe3h+1r4FaHg7t34O3r9QKKHAfEuKUxbs74L//yL4t//dd/ benf/d3fLb74xS82R+Wk4Ju/+ZsX3/7t37747u/+7uZgHO1bvuVb2sWp4mRxytBujcsfQ23CiNNz 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 AwAAAABJRU5ErkJggg== --Apple-Mail=_3B15FC26-45D1-40CD-92C9-D10467B17752 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 I am a novice at both Lua and MetaPost. I=E2=80=99m also new to Git and = have never shared anything of substance with the ConTeXt community. = (This barely counts as substantive, but I figure it=E2=80=99s best to = start small.) I=E2=80=99m sure many of you could find opportunities for = improvement with even a quick glance at the code. I welcome anything, = from advice on performance to suggestions about the license. My most = pressing questions are these: 1. How do I avoid redrawing diagrams with every typeset? The globe above = takes about 0.7s, which is not bad, but it adds up in a book with many = diagrams. 2. How do I organize this according to TDS for sharing? I know what TDS = is and why it=E2=80=99s important, but that=E2=80=99s about it! 3. Should I be creating a namespace for this module, or launching a = separate MetaFun instance? I have a general sense of what = =E2=80=9Cnamespace=E2=80=9D and =E2=80=9Cinstance=E2=80=9D mean is this = context, but I don=E2=80=99t know the consequences or the how-to. I=E2=80=99d like to share this module, even though the potential demand = is tiny, at best. I=E2=80=99m going through the Module Writing = Guidelines = (https://wiki.contextgarden.net/Modules#Module_writing_guidelines), but = there is a lot that I don=E2=80=99t understand in those instructions. = Questions 2 and 3 above relate to the instructions that are most = mysterious to me. I think I can figure most of the others out. I have been using ConTeXt for several years to write a high school = physics textbook (along with the problem sets, tests, equations sheets, = etc.). I wrote this module because I needed globes in some diagrams. I = found an old MetaPost tool, mp-geo, that seemed to have the right = ingredients, but I couldn=E2=80=99t get it to work, so I wrote my own = tool using the data files from mp-geo. Hans and others on the list gave = me valuable advice for these globes a couple years ago (and gave other = valuable advice on all sorts of things before and since). Many diagrams in my physics book use TikZ and pgfplots. I'd like to = convert everything to MetaFun. I think the best way will be writing a = few more modules for things like graphs (including polar and 3D plots), = simple circuits, simple Feynman diagrams, etc. I=E2=80=99m hoping that = these would be useful to the ConTeXt community. The luageo module has = the basic design I=E2=80=99d like to use for the others: Lua for data = handling and calculations, producing paths that are drawn by MetaFun. = With some mentoring from the generous ConTeXt community, I=E2=80=99m = hoping we can provide MetaFun alternatives to some of the TikZ = libraries. I have an alpha version of luagraph by Alan Braslau, which was helpful = in designing luageo. Working on luagraph is my next project. Gavin --Apple-Mail=_3B15FC26-45D1-40CD-92C9-D10467B17752 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) archive : https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net ___________________________________________________________________________________ --Apple-Mail=_3B15FC26-45D1-40CD-92C9-D10467B17752--