pp = {}
for i = 0, 49 do
x = i + 50
y = 30 * math.sin(x/5.0)
table.insert(pp, {x, y})
end
pic:addCurve(pp, {li="dot", lw=2})
for i = 0, 49 do
x = i + 50
y = 30 * math.sin(x/5.0)
pic:addStar(x, y + math.sin(i*i*4)*5,
{s="penta", d=0.8, fill="lightgrey", lw=0.4})
end
d = {0}
dlen = 1
for ll = 1, 8 do
for i = 1, dlen do table.insert(d, (d[dlen-i+1]+1)%4) end
dlen = 2*dlen
end
dd0 = {{1,0},{0,1},{-1,0},{0,-1}}
cc = {"blue","goldenrod","green","red"}
step = 2.5
function PP(p)
local x = p[1]+5
local y = p[2]+15
local r = math.sqrt(x*x+y*y)
local c = 1 - math.cos(r/5)*0.05
x = x*c
y = y*c
x,y = x+0.2*y,y-0.2*x
return {x/1.5+23, y/1.5+25}
end
for j = 0, 3 do
pp = {}
x,y = 0,0
y = 0
ddpre = {0, 0}
p = {0, 0}
table.insert(pp, PP(p))
for i = 1, dlen do
dd = dd0[(d[i]+j)%4+1]
p = {x-ddpre[1]*step*0.1, y-ddpre[2]*step*0.1}
table.insert(pp, PP(p))
p = {x+dd[1]*step*0.1, y+dd[2]*step*0.1}
table.insert(pp, PP(p))
p = {x+dd[1]*step*0.5, y+dd[2]*step*0.5}
table.insert(pp, PP(p))
x,y = x+dd[1]*step,y+dd[2]*step
ddpre = dd
end
p = {x, y}
table.insert(pp, PP(p))
table.insert(pp, PP(p))
table.insert(pp, PP(p))
pic:addBezier(pp, {lc=cc[j+1]})
end
pic:addRect(28, -6, 57, 57, {rotdeg=45})
d=2.8
for i = 0, 11 do
for j = 0, 11 do
c = HTML_color(
255*(0.5+0.5*math.sin(i/3.+math.sin(j/3.)*2)),
255*(0.5+0.5*math.cos(j/3.-i*i/30.)), 0)
pic:addEllipse(i*d+70,j*d+43,d*0.7,d*0.9,
{rotdeg=45, fill=c, li="none"})
end
end
pic:addCurve({{25,75}, {0,65}, {-13,38}},
{arr1 = "oc", arr2 = "h43", arrs = 0.8, lw=0.5})
pic:addSymbol(52,70,25,"cloud1",
{lw=0.5, fill="whitesmoke", rotdeg=188})
pic:addText(52,68.5,5,"Fig. 1","", {halign="c"})
fname = "sample_lTpX.TpX"
pic:write(fname)
os.execute(fname)