Hi Mikael, Thank you so much for the explanation: I am ashamed for not having read this in the MetaPost manual. Just to make sure whether I am beginning to understand, in your example code
z3 = whatever[z1,z2] = z0+whatever*dir(angle(z1-z0)+90));
should the second « whatever » be z0 + whatever*dir(angle(z2 - z1) + 90)) ; or am I proving that I have not yet understood this wonderful command ? Thanks again and best regards: Otared
On 21 Jun 2021, at 14:21, Mikael Sundqvist
wrote: Hi,
As is written in the MetaPost manual: Whatever generates a new anonymous variable each time it is used. It is very useful in cases where you are not interested in the value of a variable, but want to use it to (let MP) calculate something. Example
you have three points z0, z1, z2 forming a triangle, and you want to find where the altitude from z0 is intersecting the line between z1 and z2. You can find that intersection z3 by writing
z3 = whatever[z1,z2] = z0+whatever*dir(angle(z1-z0)+90));
The first equality says only that z3 should be on the line between z1 and z2, the second one says that z3 should be on the line through z0, perpendicular to the line between z1 and z2. Since MetaPost solves linear equations, this defines z3, and we need not to think more about the actual values of the "whatevers" (note that they are not in general equal in this example!).
Hope it helps!
/Mikael
On Mon, Jun 21, 2021 at 2:07 PM Otared Kavian
wrote: Hi Aditya,
Thanks for the detailed file you sent to answer Dalyoung’s question and file. And going through both files I have a question. I see that both of you use a function « whatever » (but is it a function ?): what does this do and where can it be used (actually I have seen Hans using this expression, but I had always thought this is just a name…
Best regards: Otared
On 21 Jun 2021, at 06:26, Aditya Mahajan
wrote: On Mon, 21 Jun 2021, Jeong Dal wrote:
Hi,
I defined a macro definition in metafun, and draw figures using \startbuffer[] … \stopbuffer and \processMPbuffer[]. As you see in the attached code, the same macro definition is used repeatedly by changing the numeric argument. Is there a better way to simplify the code, for example, using \dorecurse and recurselevel?
See attached. The main idea is to store the repetitive bits in \startuseMPgraphic{...} and then reuse them using \includeMPgraphic.
Aditya
___________________________________________________________________________________ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________