On 1/4/2015 6:04 AM, Akira Kakuto wrote:
Dear John,
How to make this a polygon?
An example:
\starttext
\startluacode
local metafun = context.metafun
metafun.start()
io.input("DATA")
local i, j
local x, y, s, t1, t2
i = 1
x={}
y={}
s="draw "
while true do
x[i], y[i] = io.read("*n", "*n")
if not x[i] then break end
metafun("filldraw fullcircle scaled 2mm shifted(%dcm,%dcm);",x[i],y[i])
i = i + 1
end
i = i - 1
for j = 1, i do
t1 = tostring(x[j])
t2 = tostring(y[j])
s = s.."("..t1.."cm,"..t2.."cm)--"
end
t1 = tostring(x[1])
t2 = tostring(y[1])
s = s.."("..t1.."cm,"..t2.."cm)"
s = s.." withpen pencircle scaled 1bp;"
metafun(s)
metafun.stop()
\stopluacode
\stoptext
Here is a bit more compact version. A path can normally nicely be concat
using "--" or ".." and we have a metafun helper drawpoints.
\starttext
\startluacode
context.metafun.start()
local split = utilities.parsers.csvsplitter { separator = " " }
local data = split(io.loaddata("data.txt"))
for i=1,#data do
data[i] = string.formatters["(%s,%s)"](unpack(data[i]))
end
context.metafun("path p ; p := (%s -- cycle) scaled cm
;",table.concat(data,"--"))
context.metafun("draw p withpen pencircle scaled 0.25mm ;")
context.metafun("drawpoints p withpen pencircle scaled 2.00mm ;")
context.metafun.stop()
\stopluacode
\stoptext
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| 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://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________