On 12/28/2019 4:22 PM, Otared Kavian wrote:
Hi all,
I would like to use a math function defined in lua in Metafun in order to draw
its graph, together with the graphs of some other functions.
As a simple example consider the following:
%%% begin lua-metafun-example.tex
\startluacode
function document.myfunction(n,x)
local S
S = math.sin(n*x)
return S
end
\stopluacode
\starttext
Here \type{document.myfunction(n,x)} is $\sin(nx)$. For instance when $n = 2$
and $x = 355/113$ we have:
\type{document.myfunction(2,355/113)}
$=\cldcontext{document.myfunction(2,355/113)} \sim 0$.
\startplacefigure[title={Nothing works\dots}]
\startMPcode{GridAxis}
numeric gu ; gu = 5mm ; % gu = graph unit
draw image (
draw function (1,"x","document.myfunction(2,x)", % <-- this does not
work
% draw function (1,"x","sin(2*x)", % <-- this works
-355/113,355/113,.01)
scaled gu
withpen pencircle scaled .075pt
withcolor darkred ;
) xsized .7TextWidth ;
\stopMPcode
\stopplacefigure
\stoptext
%%% end lua-metafun-example.tex
Here one sees that the function « document.myfunction » is well defined in Lua
and is known in ConTeXt, but I cannot use it in a Metapost code: how can one do
that?
you confuse lua and mp functions
\startluacode
function MP.myfunction(n,x)
return math.sin(n*x)
end
\stopluacode
\starttext
\startMPcode
numeric gu ; gu = 5mm ;
vardef myfunction(expr n, x) = MP.myfunction(n,x) enddef ;
draw image (
draw function (1,"x","myfunction(2,x)",-355/113,355/113,.01)
scaled gu
withpen pencircle scaled .075pt
withcolor darkred ;
) xsized .7TextWidth ;
\stopMPcode
\stoptext
-
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 / 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
___