* [NTG-context] Metapost limitation ?
@ 2024-05-12 13:57 Fabrice Couvreur
2024-05-12 15:26 ` [NTG-context] " Hans Hagen
0 siblings, 1 reply; 6+ messages in thread
From: Fabrice Couvreur @ 2024-05-12 13:57 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 2470 bytes --]
Hi,
When I want to draw the curve which corresponds to n=60 (blue curve), it
doesn't seem possible: I don't understand.
Thanks
Fabrice
\startMPpage[offset=1DK]
numeric u;
u = 6cm;
interim linejoin := mitered;
interim ahangle := 30;
path xx, yy;
xx = ( (-0.3,0) -- 1.4 right) scaled u;
yy = ( (-0.1,0) -- 1.8 right) rotated 90 scaled u;
def compute_curve(suffix f)(expr xmin, xmax, xinc) =
((xmin,f(xmin))
for x=xmin+xinc step xinc until xmax:
.. (x,f(x))
endfor)
enddef;
for i = 1 upto 4:
vardef f(expr x) =x+exp(-i*x) enddef;
path curve;
curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
draw curve;
endfor;
vardef f(expr x) =x+exp(-6*x) enddef;
path curve;
curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
draw curve;
vardef f(expr x) =x+exp(-15*x) enddef;
path curve;
curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
draw curve;
vardef f(expr x) =x+exp(-60*x) enddef;
path curve;
curve = compute_curve(f,-0.4,1.4,0.0001) scaled u; ->>>>> not
drawn
draw curve withcolor blue;
drawarrow (0,0) -- (u,0) withpen pencircle scaled 1.5bp;
drawarrow (0,0) -- (0,u) withpen pencircle scaled 1.5bp;
label.urt("A",(0,1u));
draw xx;
draw yy;
draw (1u,0) -- (1u,1.8u);
label.llft("0",(0,0));
vardef mark_y_axis(expr value, name) =
save p; pair p; p = value * u * up;
draw (left--right) scaled 1 shifted p;
label.lft(name, p shifted 2 left);
enddef;
for a = 1 upto 1:
mark_y_axis(a, "");
endfor
mark_y_axis(1, "$1$");
vardef mark_x_axis(expr value, name) =
save p; pair p; p = value * u * right;
draw (up--down) scaled 1 shifted p;
label.bot(name, p shifted 2 down);
enddef;
for a = 1 upto 1:
mark_x_axis(a, "");
endfor
mark_x_axis(1, "$1$");
path rectangle;
rectangle = (-0.3u,-0.4u) -- (1.3u,-0.4u) -- (1.3u,-0.4u) --
(1.3u,1.4u) -- (-0.3u,1.4u)--cycle;
clip currentpicture to rectangle;
\stopMPpage
[-- Attachment #1.2: Type: text/html, Size: 3686 bytes --]
[-- Attachment #2: Type: text/plain, Size: 511 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* [NTG-context] Re: Metapost limitation ?
2024-05-12 13:57 [NTG-context] Metapost limitation ? Fabrice Couvreur
@ 2024-05-12 15:26 ` Hans Hagen
2024-05-12 15:36 ` Fabrice Couvreur
0 siblings, 1 reply; 6+ messages in thread
From: Hans Hagen @ 2024-05-12 15:26 UTC (permalink / raw)
To: ntg-context
On 5/12/2024 3:57 PM, Fabrice Couvreur wrote:
> Hi,
> When I want to draw the curve which corresponds to n=60 (blue curve), it
> doesn't seem possible: I don't understand.
> Thanks
> Fabrice
>
> \startMPpage[offset=1DK]
>
> numeric u;
> u = 6cm;
>
> interim linejoin := mitered;
> interim ahangle := 30;
>
> path xx, yy;
> xx = ( (-0.3,0) -- 1.4 right) scaled u;
> yy = ( (-0.1,0) -- 1.8 right) rotated 90 scaled u;
>
> def compute_curve(suffix f)(expr xmin, xmax, xinc) =
> ((xmin,f(xmin))
> for x=xmin+xinc step xinc until xmax:
> .. (x,f(x))
> endfor)
> enddef;
>
>
> for i = 1 upto 4:
>
> vardef f(expr x) =x+exp(-i*x) enddef;
>
> path curve;
>
> curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
>
> draw curve;
>
> endfor;
>
> vardef f(expr x) =x+exp(-6*x) enddef;
>
> path curve;
>
> curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
>
> draw curve;
>
> vardef f(expr x) =x+exp(-15*x) enddef;
>
> path curve;
>
> curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
>
> draw curve;
>
>
> vardef f(expr x) =x+exp(-60*x) enddef;
>
> path curve;
>
> curve = compute_curve(f,-0.4,1.4,0.0001) scaled u; ->>>>> not
> drawn
best put a comment before the ->>>>>>>
> draw curve withcolor blue;
>
>
> drawarrow (0,0) -- (u,0) withpen pencircle scaled 1.5bp;
> drawarrow (0,0) -- (0,u) withpen pencircle scaled 1.5bp;
>
>
> label.urt("A",(0,1u));
>
> draw xx;
> draw yy;
>
> draw (1u,0) -- (1u,1.8u);
>
>
> label.llft("0",(0,0));
>
> vardef mark_y_axis(expr value, name) =
> save p; pair p; p = value * u * up;
> draw (left--right) scaled 1 shifted p;
> label.lft(name, p shifted 2 left);
> enddef;
>
> for a = 1 upto 1:
> mark_y_axis(a, "");
> endfor
>
> mark_y_axis(1, "$1$");
>
>
> vardef mark_x_axis(expr value, name) =
> save p; pair p; p = value * u * right;
> draw (up--down) scaled 1 shifted p;
> label.bot(name, p shifted 2 down);
> enddef;
>
> for a = 1 upto 1:
> mark_x_axis(a, "");
> endfor
>
> mark_x_axis(1, "$1$");
>
>
> path rectangle;
> rectangle = (-0.3u,-0.4u) -- (1.3u,-0.4u) -- (1.3u,-0.4u) --
> (1.3u,1.4u) -- (-0.3u,1.4u)--cycle;
>
> clip currentpicture to rectangle;
> \stopMPpage
>
your exp usage:
exp(-60*-0.4)
if you see what huge numbers come out of that, like
-51.006602 11100558579.857309 l
-50.989594 11034154639.123087 l
-50.972586 10968147929.149401 l
-50.955579 10902536073.687559 l
-50.938571 10837316710.703716 l
you could imagine a viewer crapping out on that because no matter what
one clips it still is 'kind of drawn', so what viewer do you use?
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* [NTG-context] Re: Metapost limitation ?
2024-05-12 15:26 ` [NTG-context] " Hans Hagen
@ 2024-05-12 15:36 ` Fabrice Couvreur
2024-05-12 15:48 ` Hans Hagen
0 siblings, 1 reply; 6+ messages in thread
From: Fabrice Couvreur @ 2024-05-12 15:36 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 4594 bytes --]
Sorry for the comment !
I use Evince
Le dim. 12 mai 2024 à 17:30, Hans Hagen <j.hagen@xs4all.nl> a écrit :
> On 5/12/2024 3:57 PM, Fabrice Couvreur wrote:
> > Hi,
> > When I want to draw the curve which corresponds to n=60 (blue curve), it
> > doesn't seem possible: I don't understand.
> > Thanks
> > Fabrice
> >
> > \startMPpage[offset=1DK]
> >
> > numeric u;
> > u = 6cm;
> >
> > interim linejoin := mitered;
> > interim ahangle := 30;
> >
> > path xx, yy;
> > xx = ( (-0.3,0) -- 1.4 right) scaled u;
> > yy = ( (-0.1,0) -- 1.8 right) rotated 90 scaled u;
> >
> > def compute_curve(suffix f)(expr xmin, xmax, xinc) =
> > ((xmin,f(xmin))
> > for x=xmin+xinc step xinc until xmax:
> > .. (x,f(x))
> > endfor)
> > enddef;
> >
> >
> > for i = 1 upto 4:
> >
> > vardef f(expr x) =x+exp(-i*x) enddef;
> >
> > path curve;
> >
> > curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
> >
> > draw curve;
> >
> > endfor;
> >
> > vardef f(expr x) =x+exp(-6*x) enddef;
> >
> > path curve;
> >
> > curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
> >
> > draw curve;
> >
> > vardef f(expr x) =x+exp(-15*x) enddef;
> >
> > path curve;
> >
> > curve = compute_curve(f,-0.4,1.4,0.0001) scaled u;
> >
> > draw curve;
> >
> >
> > vardef f(expr x) =x+exp(-60*x) enddef;
> >
> > path curve;
> >
> > curve = compute_curve(f,-0.4,1.4,0.0001) scaled u; ->>>>> not
> > drawn
>
> best put a comment before the ->>>>>>>
>
> > draw curve withcolor blue;
> >
> >
> > drawarrow (0,0) -- (u,0) withpen pencircle scaled 1.5bp;
> > drawarrow (0,0) -- (0,u) withpen pencircle scaled 1.5bp;
> >
> >
> > label.urt("A",(0,1u));
> >
> > draw xx;
> > draw yy;
> >
> > draw (1u,0) -- (1u,1.8u);
> >
> >
> > label.llft("0",(0,0));
> >
> > vardef mark_y_axis(expr value, name) =
> > save p; pair p; p = value * u * up;
> > draw (left--right) scaled 1 shifted p;
> > label.lft(name, p shifted 2 left);
> > enddef;
> >
> > for a = 1 upto 1:
> > mark_y_axis(a, "");
> > endfor
> >
> > mark_y_axis(1, "$1$");
> >
> >
> > vardef mark_x_axis(expr value, name) =
> > save p; pair p; p = value * u * right;
> > draw (up--down) scaled 1 shifted p;
> > label.bot(name, p shifted 2 down);
> > enddef;
> >
> > for a = 1 upto 1:
> > mark_x_axis(a, "");
> > endfor
> >
> > mark_x_axis(1, "$1$");
> >
> >
> > path rectangle;
> > rectangle = (-0.3u,-0.4u) -- (1.3u,-0.4u) -- (1.3u,-0.4u) --
> > (1.3u,1.4u) -- (-0.3u,1.4u)--cycle;
> >
> > clip currentpicture to rectangle;
> > \stopMPpage
> >
> your exp usage:
>
> exp(-60*-0.4)
>
> if you see what huge numbers come out of that, like
>
> -51.006602 11100558579.857309 l
> -50.989594 11034154639.123087 l
> -50.972586 10968147929.149401 l
> -50.955579 10902536073.687559 l
> -50.938571 10837316710.703716 l
>
> you could imagine a viewer crapping out on that because no matter what
> one clips it still is 'kind of drawn', so what viewer do you use?
>
> Hans
>
> -----------------------------------------------------------------
> Hans Hagen | PRAGMA ADE
> Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
> tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> -----------------------------------------------------------------
>
>
> ___________________________________________________________________________________
> 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
>
> ___________________________________________________________________________________
>
[-- Attachment #1.2: Type: text/html, Size: 6785 bytes --]
[-- Attachment #2: Type: text/plain, Size: 511 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* [NTG-context] Re: Metapost limitation ?
2024-05-12 15:36 ` Fabrice Couvreur
@ 2024-05-12 15:48 ` Hans Hagen
2024-05-12 16:21 ` Fabrice Couvreur
0 siblings, 1 reply; 6+ messages in thread
From: Hans Hagen @ 2024-05-12 15:48 UTC (permalink / raw)
To: ntg-context
On 5/12/2024 5:36 PM, Fabrice Couvreur wrote:
> Sorry for the comment !
> I use Evince
so how about okular or mupdf
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* [NTG-context] Re: Metapost limitation ?
2024-05-12 15:48 ` Hans Hagen
@ 2024-05-12 16:21 ` Fabrice Couvreur
2024-05-12 17:36 ` Mikael Sundqvist
0 siblings, 1 reply; 6+ messages in thread
From: Fabrice Couvreur @ 2024-05-12 16:21 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 1133 bytes --]
With Okular, it works !
Le dim. 12 mai 2024 à 17:55, Hans Hagen <j.hagen@xs4all.nl> a écrit :
> On 5/12/2024 5:36 PM, Fabrice Couvreur wrote:
> > Sorry for the comment !
> > I use Evince
> so how about okular or mupdf
>
> -----------------------------------------------------------------
> Hans Hagen | PRAGMA ADE
> Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
> tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> -----------------------------------------------------------------
>
>
> ___________________________________________________________________________________
> 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
>
> ___________________________________________________________________________________
>
[-- Attachment #1.2: Type: text/html, Size: 2173 bytes --]
[-- Attachment #2: Type: text/plain, Size: 511 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* [NTG-context] Re: Metapost limitation ?
2024-05-12 16:21 ` Fabrice Couvreur
@ 2024-05-12 17:36 ` Mikael Sundqvist
0 siblings, 0 replies; 6+ messages in thread
From: Mikael Sundqvist @ 2024-05-12 17:36 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 1405 bytes --]
Hi,
On Sun, May 12, 2024 at 6:24 PM Fabrice Couvreur <
fabrice1.couvreur@gmail.com> wrote:
>
> With Okular, it works !
Very good. You can still try the thing below:
\startluacode
local exp = math.exp
local N = 1000
local xstep = 1.6/N
local ystep = 1.8/N
local xmin = 0.3
local ymin = 0.4
local function f(x,y)
local x = xstep*x - xmin
local y = ystep*y - ymin
local z = x + exp(-60*x) - y
if z > 0 then
return '1'
else
return '0'
end
end
potrace.setbitmap("mybitmap", potrace.contourplot(N,N,f))
\stopluacode
\startMPpage[offset=1dk]
path p ; p := lmt_potraced [
stringname = "mybitmap",
value = "1",
tolerance = 0.1,
threshold = 0.2,
optimize = true,
] ;
p := p xsized 10cm ;
draw p withpen pencircle scaled 5 withcolor "darkblue" ;
drawpoints p withcolor "orange" ;
drawpointlabels p ;
p := subpath(6,19) of p ;
draw p withpen pencircle scaled 3 withcolor "yellow" ;
\stopMPpage
Another thing, Hans added nocycle, so you can write your loop if you want
to use it as something like
def compute_curve(suffix f)(expr xmin, xmax, xinc) =
for x=xmin step xinc until xmax:
(x,f(x)) ..
endfor nocycle ;
enddef;
Then you do not need to think about the first and/or last point separately.
[-- Attachment #1.2: Type: text/html, Size: 1897 bytes --]
[-- Attachment #2: Type: text/plain, Size: 511 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-05-12 17:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-12 13:57 [NTG-context] Metapost limitation ? Fabrice Couvreur
2024-05-12 15:26 ` [NTG-context] " Hans Hagen
2024-05-12 15:36 ` Fabrice Couvreur
2024-05-12 15:48 ` Hans Hagen
2024-05-12 16:21 ` Fabrice Couvreur
2024-05-12 17:36 ` Mikael Sundqvist
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).