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:
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;
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,
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...