-- Figure ou Courbe de Lissajous by GT ( Adaptation pour codea )
-- http://www.civil.usherbrooke.ca/cours/gin202/vb/vbprog3.htm
function setup()
-- Oscilloscope
pencolor=color(108, 255, 0, 255)
parameter.integer("val1",0,99,99)
parameter.integer("val2",0,99,98)
parameter.integer("val3",0,99,90)
parameter.integer("nline",0,1000,200)
parameter.integer("pensize",1,10,1)
parameter.color("pencolor",pencolor)
end
function draw()
background(40, 40, 50) ; strokeWidth(pensize) ; stroke(pencolor)
x0=WIDTH/2 ; y0=HEIGHT/2 ; curx=x0 ; cury=0
for i=1, nline do
-- val1 : multiplicateur sin : 0 à 99
-- val2 : multiplicateur cos : 0 à 99
-- val3 : n * pi * 10 : 0 à 99
w = i * val3 * 0.3141592654
x = x0 + x0 * math.sin(w * val1 * 0.01)
y = y0 - y0 * math.cos(w * val2 * 0.01)
line(curx,cury,x,y)
curx=x ; cury=y
end
end
possible improvements :
- animation ( horizontal rotation )
- gradient colors
- sounds like animoog
- 3d lissajou curve