リサージュ曲線で遊ぶ
地道に攻めている音とか信号処理方面とは別に、やはり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; } } }