All, This example from the Metapost manual is beyond my expertise. The second figure is sweet, just what I would want. Can anyone wax philosophic for a bit and explain why the y-scaling keeps the second function single valued? starttext \startbuffer[figure] numeric scf, t[]; 3.2scf=2.4in; path fun; fun:=(0,-1)..(1,.5){right}..(1.9,.2){right}..{curl .1}(3.2,2); fun:=fun scaled scf; draw fun; \stopbuffer \placefigure [][fig:one] {Caption.} {\processMPbuffer[figure]} \startbuffer[figure] numeric scf, yscl, t[]; 3.2scf=2.4in; path fun; yscl=.1; %keep the function single valued fun:=(0,-1yscl)..(1,.5yscl){right}..(1.9,.2yscl){right}..{curl .1} (3.2,2yscl); fun:=fun yscaled (1/yscl); fun:=fun scaled scf; draw fun; \stopbuffer \placefigure [][fig:one] {Caption.} {\processMPbuffer[figure]} \stoptext
Hi Arnold,
this is no exact answer, but possibly the reason why:
First, have a look at:
\starttext
\startbuffer[figure]
numeric scf, t[];
3.2scf=2.4in;
path fun;
fun:=(0,-1)..(1,.5){right}..(1.9,.2){right}..{curl .1}(3.2,2);
fun:=fun scaled scf;
drawpath fun;
drawpoints fun;
\stopbuffer
\placefigure
[][fig:one]
{Caption.}
{\processMPbuffer[figure]}
\startbuffer[figure]
numeric scf, yscl, t[];
3.2scf=2.4in;
path fun;
yscl=.1; %keep the function single valued
fun:=(0,-1yscl)..(1,.5yscl){right}..(1.9,.2yscl){right}..{curl .1}
(3.2,2yscl);
fun:=fun scaled scf;
drawpath fun shifted (3cm,0cm);
drawpoints fun shifted (3cm,0cm);
fun:=fun yscaled (1/yscl);
drawpath fun shifted (-3cm,0cm);
drawpoints fun shifted (-3cm,0cm);
\stopbuffer
\placefigure
[][fig:one]
{Caption.}
{\processMPbuffer[figure]}
\stoptext
Let us focus on the first two points.
In the upper figure:
The horizontal distance between point 1 and 2 is less than the
vertical distance. If you want the path from 1 to 2 to be part of a
circle, where the "top" of the circle should be at point 2 (whis is so
because of the {right} option at point 2) this forces the "leftmost"
part of the circle to be in the path and also to be left of point 1.
This gives necessary a "multivalued" function
In the lower right figure:
Now the horizontal distance between point 1 and 2 is greater than the
vertical distance. Hence the "leftmost" part of the circle is not in
the path and the function gets single valued.
This is more or less it. I'm not 100% sure the path from 1 to 2 is
part of a circle, but the reason is probably the same.
With best regards, Micke P
On 4/19/07, David Arnold
All,
This example from the Metapost manual is beyond my expertise. The second figure is sweet, just what I would want. Can anyone wax philosophic for a bit and explain why the y-scaling keeps the second function single valued?
starttext
\startbuffer[figure] numeric scf, t[]; 3.2scf=2.4in; path fun; fun:=(0,-1)..(1,.5){right}..(1.9,.2){right}..{curl .1}(3.2,2); fun:=fun scaled scf; draw fun; \stopbuffer
\placefigure [][fig:one] {Caption.} {\processMPbuffer[figure]}
\startbuffer[figure] numeric scf, yscl, t[]; 3.2scf=2.4in; path fun; yscl=.1; %keep the function single valued fun:=(0,-1yscl)..(1,.5yscl){right}..(1.9,.2yscl){right}..{curl .1} (3.2,2yscl); fun:=fun yscaled (1/yscl); fun:=fun scaled scf; draw fun; \stopbuffer
\placefigure [][fig:one] {Caption.} {\processMPbuffer[figure]}
\stoptext _______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context
participants (2)
-
David Arnold
-
Mikael Persson