View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

drawing drawing

Home   How To   Code Pool   Public Library   Theory   Events
jrh 2006
(
		var xx, yy, x, y, c, width, z=1, pp, zz=0, mm=10, alph=1.0;
		width = 1;
		w = GUI.window.new(Char.bullet, Rect(100, 100, 600, 600)).front;
		w.view.background_(Color.black);
	
		v = GUI.userView.new(w, w.view.bounds).mouseTrackFunc_({|v,ax,ay| 
			x = ax; y = ay;
			
			4.do {
					[xx, yy].choose.value([5, -5, 2, -2, 8, -8].choose * 2);
					
			};
			
		 });
		
		x = 200; y = 100;
		xx = { |d=1| c = c.add((x = x + d) @ y ).keep(-150) };
		yy = { |d=1| c = c.add(x @ (y = y + d)).keep(-150) };
		c = [];
		20.do {
				[xx, yy].choose.value([10, -10, 5, -5, 2, -2].choose * 2);
				
		};
		c.postln;
		w.drawHook = {
			try { Pen.setSmoothing(false) };
			z.do { |i|
				Color.rand.alpha_(i.linexp(0, z-1, 1.0, alph)).set;
				Pen.moveTo(c[0]);
				
				Pen.width = width; 
				
				c.size.do { |i| Pen.lineTo(c.wrapAt(i)) };
				Pen.stroke;
				Pen.translate([-2, -2, 2, 2] @@ zz, [-2, 2, -2, 2]*2 @@ zz);
				
			};
			z = z + 1 % mm;
			if(z % mm == 0) { zz = zz + 1; mm = rrand(5, 20); alph = #[0.1, 1.0].choose };
			
	
		};
		w.refresh;
		fork { loop { 0.1.wait; defer { w.refresh; } } };

)



(
		var xx, yy, x, y, c, d, width, z=1, pp, zz=0, mm=10, alph=1.0;
		var phunz, distance, steps, nKeep, mode;
		
		q = q ?? ();
		
		width = 1;
		w = GUI.window.new(Char.bullet, Rect(100, 100, 400, 400)).front;
		w.view.background_(Color.black);
	
		distance = 1;
		nKeep = 20;
		x = 200; 
		y = 100;
		steps = #[1, 2, 2, 1, 4, 4, 28];
		mode = true;
		
		v = GUI.userView.new(w, w.view.bounds);
		v.mouseTrackFunc_({|v,ax,ay| 
			x = ax; y = ay;
			phunz.(8);
		 });
		 v.mouseEndTrackFunc_({|v,ax,ay| 
			q.sendData(d);
		 });
		
		phunz = { arg n=1;
			c = [];
			n.do {
					[xx, yy].choose.value(steps.choose *#[1, -1].choose);
					
			};
			d = d.add(c).keep(nKeep.neg);
			
		};
		
		xx = { |d=1| c = c.add((x = x + d)@ y ) };
		yy = { |d=1| c = c.add(x @ (y = y + d)) };
		
		phunz.(20);
		w.drawHook = {
			
			try { Pen.setSmoothing(false) };
			z.do { |i|
				Color.rand.alpha_(i.linexp(0, z-1, alph, 1.0)).set;
				Pen.width = width; 
				
				d.do { |x, i| 
					Pen.moveTo(x[0]);
					x.do { |point|
						Pen.lineTo(point)
					};
					Pen.stroke;
				};
				
				Pen.translate(
					[-1, -1, 1, 1] @@ zz * distance, 
					[-1, 1, -1, 1] @@ zz *(1.7320508075689* distance)
				);
				
			};
		
			z = 1;
	
		};
		w.refresh;
		fork { loop { 0.01.wait; defer { w.refresh; } } };
)


Link to this Page