Thanks a lot for this nice and clean solution. It’s fantastic. Now it is very 
easy to make scatter plots from the output of c++ libraries and other kind of 
applications: two axes and a path build like this

 path curve; 
 numeric i; i:=1;
 curve :=  my_offset(i) forever: hide(i := i + 1) exitif i >  my_nofelements .. 
my_offset(i) endfor;

Thanks again

Have a great 2018

Jorge


> No dia 28/12/2017, às 18:47, Hans Hagen <pra...@wxs.nl> escreveu:
> 
> \starttext
> 
> \startluacode
>    MP.mycode = { }
> 
>    local elements = { }
> 
>    function MP.mycode.loadelements(filename)
>        elements = { }
>        for line in io.lines(filename) do
>            elements[#elements+1] = { string.match(line, 
> '(%S+)%s*(%S+)%s*(%S+)%s*(%S+)%s*(%S+)') }
>        end
>    end
> 
>    function MP.mycode.nofelements()
>        mp.print(#elements)
>    end
> 
>    function MP.mycode.getlabel(i)
>        mp.quoted(elements[i][1])
>    end
> 
>    function MP.mycode.getoffset(i)
>        mp.pair(elements[i][2],elements[i][3])
>    end
> \stopluacode
> 
> \startMPcode
>    lua.MP.mycode.loadelements("molecule.xyz <http://molecule.xyz/>") ;
>    for i=1 upto lua.MP.mycode.nofelements() :
>        label (lua.MP.mycode.getlabel(i),50 * lua.MP.mycode.getoffset(i)) ;
>    endfor ;
> \stopMPcode
> 
> \startMPcode
>    def my_loadelements(expr name) =
>        lua.MP.mycode.loadelements(name) ;
>    enddef ;
>    vardef my_nofelements =
>        lua.MP.mycode.nofelements()
>    enddef ;
>    vardef my_label(expr i) =
>        lua.MP.mycode.getlabel(i)
>    enddef ;
>    vardef my_offset(expr i) =
>        lua.MP.mycode.getoffset(i)
>    enddef ;
> 
>    my_loadelements("molecule.xyz <http://molecule.xyz/>") ;
>    for i=1 upto my_nofelements :
>        label (my_label(i),50 * my_offset(i)) ;
>    endfor ;
> \stopMPcode
> 
> \stoptext

___________________________________________________________________________________
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
___________________________________________________________________________________

Reply via email to