正弦波で矩形波
正弦を使って矩形波
* rwmのj<=~~ のところを大きくするとより綺麗な矩形になる
* しかしながら描画を適当にやってるので重い
/*
* 正弦を使って矩形波
* 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;
}
}
}