From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/75810 Path: news.gmane.org!not-for-mail From: Mari Voipio Newsgroups: gmane.comp.tex.context Subject: Metapost/Metafun Q: using variables and "building blocks"? Date: Mon, 23 Apr 2012 20:34:19 +0300 Message-ID: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1335202467 20436 80.91.229.3 (23 Apr 2012 17:34:27 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 23 Apr 2012 17:34:27 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Mon Apr 23 19:34:27 2012 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([195.12.62.10]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SMN9e-0003oV-Bn for gctc-ntg-context-518@m.gmane.org; Mon, 23 Apr 2012 19:34:26 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 9FE7A101CF; Mon, 23 Apr 2012 19:34:25 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with LMTP id NhSLyAHrgS5F; Mon, 23 Apr 2012 19:34:23 +0200 (CEST) Original-Received: from [127.0.0.1] (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id D80E6101DF; Mon, 23 Apr 2012 19:34:23 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 5829B101DF for ; Mon, 23 Apr 2012 19:34:22 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with LMTP id bpNtT6ZFMxPB for ; Mon, 23 Apr 2012 19:34:21 +0200 (CEST) Original-Received: from filter5-til.mf.surf.net (filter5-til.mf.surf.net [194.171.167.221]) by balder.ntg.nl (Postfix) with ESMTP id 786FC101CF for ; Mon, 23 Apr 2012 19:34:21 +0200 (CEST) Original-Received: from mail-lb0-f169.google.com (mail-lb0-f169.google.com [209.85.217.169]) by filter5-til.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id q3NHWpIO002960 for ; Mon, 23 Apr 2012 19:32:52 +0200 Original-Received: by lbbgg6 with SMTP id gg6so4497812lbb.14 for ; Mon, 23 Apr 2012 10:34:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=wBLywIaxEUavFZOc66hNPsKou7aorznuoO0SS72FLLk=; b=NgUZxnHl7keFTHhYHlYyHrjOIPtFqhMpVnImJZJfffA2YiMzszDWCvC7Hq/jLVQtOX YCBOj6JSjsbwU+lZGEf3dCp5uGcjddHrhDUXYcA4QEcf4P+hpd7+MJX8E/7EnFlM0DAG p6h69JTH4tqxUqnT46EZZZ1zxGT+RNB/q8LFAo5D72n0fBqeYaYB/JnXW0mpI0wBdaLM uQhRs1Q+KNz8G+cjXYahQT4wKIVOun2moYLPPKInhiqmx44pJ/nS22w3Kqoy4/CLKC6W a6UfYZqvVdlMrmWdH0vbKv2JGB9beeCwmxPR8E8p4JOw1qm/exGF15GQCTMUgMmyEmM0 1qVQ== Original-Received: by 10.152.104.80 with SMTP id gc16mr13005724lab.46.1335202459965; Mon, 23 Apr 2012 10:34:19 -0700 (PDT) Original-Received: by 10.152.5.9 with HTTP; Mon, 23 Apr 2012 10:34:19 -0700 (PDT) X-Google-Sender-Auth: s8CNl4iQMRxfx3BYDSjzin9DnEw X-Bayes-Prob: 0.005 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=209.85.217.169; country=US; region=CA; city=Mountain View; postalcode=94043; latitude=37.4192; longitude=-122.0574; metrocode=807; areacode=650; http://maps.google.com/maps?q=37.4192,-122.0574&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 0WH1twPzN - f0618b673894 - 20120423 (trained as not-spam) X-Scanned-By: CanIt (www . roaringpenguin . com) on 194.171.167.221 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.12 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:75810 Archived-At: Hello all, any graphic experts around who can bump me past a stupid hinder on my way to understanding MPgraphics? I'm trying to create a system of describing certain type of braiding patterns (fingerloop braiding), based on what has been used in the field before me - but they did it all manually either by pen or computer, and I just do not fancy doing 40+ patterns by hand in Inkscape, especially as my pattern recipe book keeps expanding and I'm planning on that, too. I think Metapost could be the solution, because I need simple shapes and sometimes complicated but well-regulated paths/arrows to go between them; I'm just being a clueless newbie, too much in the WYSIWYG vector graphics mode to really know what to do. Mostly with the examples in the Metafun manual I've managed to get as far as to my basic building block, two circles joined by a curve: \startMPpage path p, q, r ; p := fullcircle scaled 8mm ; q := p shifted (0cm,24mm) ; r := center p .. (12mm,12mm) .. center q ; pair pr, qr ; pr := p intersectionpoint r ; qr := q intersectionpoint r ; r := r cutbefore pr cutafter qr ; r := r cutends 0.2mm ; draw r withpen pencircle scaled 0.2mm withcolor black ; draw p withpen pencircle scaled 0.2mm withcolor black ; fill p withcolor white; draw q withpen pencircle scaled 0.2mm withcolor black ; fill q withcolor black; \stopMPpage However, I don't seem to be able to find the answers to the next questions: a) I need to be able to stack four of these on top of each other and then four mirrored ones next to them (all-in-all a 2 x 4 grid/block), and probably a 1-block space between the two columns. I realize I can do that with "shift", but should I make my single 'building block' a group, a buffer or overlay or something else? Keeping in mind that I will have to be able to draw a path/arrow on top, so I need to know where they are. (At some point I need to expand to more columns, but the number of rows is still 4 as we have humans have just four aligned fingers per hand - thumbs aren't counted - but one can add hands i.e. people to work wider braids.) b) The circles p and q can be filled with the same colour or two different colours, and each of the blocks in a pattern can have different fill colour (e.g. two totally black, two totally white, two half-and-half with either black or white on top). The pen/outline colour should stay as black, which means that I can't implement the symbol example in the Metafun manual (the smiley that is totally switched from black to red). I don't mind having different blocks for monocoloured and bicoloured versions, but it would be nice to be able to say something like \usesloop[lh,blue] for 'take a single-coloured left-hand loop in blue' instead of having to dig deeper into the MP code every time. I assume the answer is "use variables", but how? I used millimeters here because it just feels more natural to me, that's what textile crafts does (when not based on inches like quilting and scrapbooking...). The measurements won't be shown anywhere - these are graphs or pictograms, not real pictures - so I can still switch to using something else. Besides, if the "building block" approach works, there isn't that much to be changed, get the first block right and the rest can be calculated from there. Any ideas on how I can achieve the ease that surely exists somewhere there? I'll take plain Metapost or a combination of Metapost and Metafun + ConTeXt as I'll use ConTeXt anyway to achieve multi-format output with a minimum of fuss. Help thankfully received, as always, Mari PS. Today's craft related metaphor: I feel just like I was staring at a messed up skein of yarn: I know that I'm now holding one of the ends, I thus can start to untangle the knot - and the more I pry loose, the less there's left to sort out. However, in the beginning the process tends to be very slow and awkward... ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________