リサージュ曲線で遊ぶ


地道に攻めている音とか信号処理方面とは別に、やはりASerとしては「数学的なアルゴリズム」と「気持ちいい/面白い動きだったり見た目」、というのの絡みも関心の強い分野だったりするわけで。

というわけでまずはべったべたなところでリサージュ曲線がらみで謎なものを作ってみた。
http://labs.zkdesign.jp/

主に使ってるのはリサージュ曲線の計算式+BitmapData.draw()+BitmapData.scroll()。

毎度のことながらメインのコードはカオスなので、とりあえずリサージュ曲線の各点を吐かせるために書いたコードだけ貼っておいてみる。

package {
	import flash.geom.Point;

	public class Lissajous {
		
		private var _point:Point;
		private var _phase:Number;
		private const PI_X_2:Number=Math.PI*2;
		public var coeffSine:Number;
		public var coeffCos:Number;
		public var coeffSineRad:Number;
		public var coeffCosRad:Number;
		public var cosAddPhase:Number;
		public var radSpeed:Number;
		
		
		
		public function Lissajous() {
			_phase=0;
			_point=new Point();
			coeffCos=1;
			coeffCosRad=1;
			coeffSine=1;
			coeffSineRad=1;
			cosAddPhase=0;
			radSpeed=PI_X_2/360;
		}
		
		public function update():void{
			_phase+=radSpeed;
			if(radSpeed>PI_X_2){
				radSpeed-=PI_X_2;
			}
			_point.x=coeffSine*Math.sin(coeffSineRad*_phase);
			_point.y=coeffCos*Math.cos(coeffCosRad*_phase+cosAddPhase);
		}
		
		public function getPoint():Point{
			return _point;
		}
		
	}
	
}