In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

正弦波で矩形波

正弦を使って矩形波
* rwmのj<=~~ のところを大きくするとより綺麗な矩形になる
* しかしながら描画を適当にやってるので重い
Get Adobe Flash player
by Susisu 15 Feb 2010
    Embed
/*
 * 正弦を使って矩形波
 * rwmのj<=~~ のところを大きくするとより綺麗な矩形になる
 * しかしながら描画を適当にやってるので重い
 */
package {
	import flash.display.Sprite;
	import flash.events.Event;
	[SWF(width="465", height="465", backgroundColor="0xFFFFFF", frameRate="30")]
	public class Rectangle_wave extends Sprite {
		private var pos:Number;
		public function Rectangle_wave() {
			pos=0;
			draw(pos);
			addEventListener(Event.ENTER_FRAME,loop);
		}
		private function loop(e:Event):void {
			pos+=5;
			graphics.clear();
			draw(pos);
		}
		private function draw(p:Number):void{
			//軸を引く
			graphics.lineStyle(1,0x00FF00,100);
			graphics.moveTo(0,232);
			graphics.lineTo(465,232);
			graphics.moveTo(232,0);
			graphics.lineTo(232,465);
			//グラフ
			graphics.lineStyle(1,0x000000,100);
			graphics.moveTo(0,rwm((-232+p)/100)*100*(-1)+232);
			for(var i:int=-232;i<232;i++){
				graphics.lineTo(i+232,rwm((i+p)/100)*100*(-1)+232);
			}
		}
		private function rwm(n:Number):Number{
			var r:Number=0;
			for(var j:uint=1;j<=101;j+=2){
				r+=Math.sin(n*j)/j;
			}
			return r;
		}
	}
}