//"distance and angles alternatively" - with inspiration from p.dahlstedt sounds unheard of: mutasynth
(
var w, u, p, width= 400, height= 400, l, center, cnt= 0, scale= 5, scalef= 0.02.rand2;
center= Point(width, height)/2;
w= Window("ga plot test", Rect(128, 64, width, height), false);
u= UserView(w, Rect(0, 0, width, height));
u.background= Color.white;
w.front;
l= {1.0.rand}.dup(20000);
u.drawFunc= {
cnt= cnt+1;
if(cnt%25==0, {
scalef= 0.02.rand2;
800.do{l.put(l.size.rand, 1.0.rand)};
});
scale= (scale+scalef).wrap(-10, 10);
p= Point(0, 0);
Pen.moveTo(center);
l.clump(2).do{|ll, i|
var distance, angle;
#distance, angle= ll;
p= Point(distance, distance).rotate(angle*2pi)+p;
Pen.lineTo(p*scale+center);
};
Pen.stroke;
};
{while{w.isClosed.not} {u.refresh; (1/25).wait}}.fork(AppClock);
)
//ga plot test gone wrong /redFrik
(
var w, u, p, width= 400, height= 400, l;
l= {1.0.rand}.dup(20000);
p= Point(0, 0);
w= Window("ga plot test", Rect(128, 64, width, height), false);
u= UserView(w, Rect(0, 0, width, height));
u.background= Color.white;
w.front;
u.drawFunc= {
Pen.moveTo(Point(width/2, height/2));
l.clump(2).do{|ll, i|
var distance, angle;
#distance, angle= ll;
p= Point(distance, distance).rotate(angle*2pi)+p;
Pen.lineTo(Point(p.x*10+(width/2)%width, p.y*10+(height/2)%height));
};
Pen.stroke;
};
)
(
var width= 640, height= 480, run= true, w, u, theta= 0, drawFunc, asdf= 0, cnt= 0;
w= Window("trail test2", Rect(128, 64, width, height), false);
drawFunc= {|v|
var x= 105*sin(theta), y= 25*cos(asdf);
//--clear with alpha
Pen.fillColor= Color.grey(0, sin(cnt%1000/1000).linexp(-1, 1, 0.001, 1));
Pen.fillRect(Rect(0, 0, width, height));
cnt= cnt+1;
//--rects
Pen.strokeColor= Color.white;
Pen.push;
Pen.translate(width*0.5, height*0.5);
8.do{|i| //number of boxes
Pen.scale(asdf*4+(i*0.4), 0.5+((i/3).sqrt));
Pen.rotate(asdf+theta);
Pen.strokeRect(Rect.aboutPoint(Point(x, y), 60, 40));
};
Pen.pop;
};
u= UserView(w, Rect(10, 10, width-20, height-20))
.clearOnRefresh_(false)
.drawFunc_(drawFunc)
.background= Color.black;
w.front;
Routine({
var i= 0;
while({w.isClosed.not}, {
asdf= sin(i%900/900*2pi)*0.1;
theta= theta+0.01;
u.refresh;
(1/40).wait;
i= i+1;
});
}).play(AppClock)
)
//sunday drawings /f0
(
var width= 640, height= 480, w, u, drawFunc, clear= true;
var a, b, c, d, e, f, g, phasor, theta= 0;
w= Window("sunday drawings", Rect(128, 64, width, height), false);
drawFunc= {|v|
var x, y;
if(clear, {
theta= 0;
a= 200.rand;
b= 200.rand;
c= 3.0.rand2;
d= 3.0.rand2;
e= 3.0.rand;
f= 0.1.rrand(1.5)*#[1, -1].choose;
g= 0.1.rrand(1.5)*#[1, -1].choose;
Pen.fillColor= Color.grey(0, 0.1);
Pen.fillRect(Rect(0, 0, width, height));
}, {
x= sin(theta*a%a/b*c*2pi);
y= sin(theta*b%b/a*d*2pi);
Pen.strokeColor= Color.grey(phasor, 0.5);
Pen.translate(width*0.5, height*0.5);
Pen.scale(f, g);
Pen.rotate(theta);
switch(a%3,
0, {Pen.strokeOval(Rect.aboutPoint(Point(x*100, y*100), a, b))},
1, {Pen.strokeRect(Rect.aboutPoint(Point(x*100, y*100), a, b))},
2, {Pen.line(Point(x*100, y*100), Point(a*c*100, b*d*100)); Pen.stroke}
);
});
};
u= UserView(w, Rect(0, 0, width, height))
.clearOnRefresh_(false)
.drawFunc_(drawFunc)
.background_(Color.black);
w.front;
Routine({
var i;
0.1.wait;
while({w.isClosed.not}, {
clear= false;
i= 0;
while({w.isClosed.not and:{i<750}}, {
theta= theta+(d*e*f);
phasor= i/750;
u.refresh;
0.0001.wait;
i= i+1;
});
3.wait;
clear= true;
i= 0;
while({w.isClosed.not and:{i<50}}, {
u.refresh;
0.02.wait;
i= i+1;
});
});
}).play(AppClock)
)