SW = Stage.width;
SH = Stage.height;
kRadiansToDegrees = 180/Math.PI;
kDegreesToRadians = Math.PI/180;
rad = 100;
diagw = rad*Math.PI;
diagh = rad*2;
MovieClip.prototype.drawCircle = function(x,y,radius)
{
var r = radius;
var n= 8;
var theta = 45*kDegreesToRadians;
var cr = radius/Math.cos(theta/2);
var angle = bA*kDegreesToRadians;
var cangle = angle-theta/2;
this.moveTo(x+r, y);
for (var i=0;i < n;i++)
{
angle += theta;
cangle += theta;
var endX = r*Math.cos (angle);
var endY = r*Math.sin (angle);
var cX = cr*Math.cos (cangle);
var cY = cr*Math.sin (cangle);
this.curveTo(x+cX,y+cY, x+endX,y+endY);
}
}
circle_mc = _root.createEmptyMovieClip("circle_mc",
1);
circle_mc._x = 110;
circle_mc._y = 110;
triangle_mc = _root.createEmptyMovieClip("triangle_mc",
2);
triangle_mc._x = 110;
triangle_mc._y = 110;
sine_mc = _root.createEmptyMovieClip("sine_mc", 3);
sine_mc._x = 110+rad+10;
sine_mc._y = 110-rad;
sine_mc.createEmptyMovieClip("waves_mc", 1);
sine_mc.waves_mc._y = diagh/2;
sine_mc.createEmptyMovieClip("meter_mc", 2);
sine_mc.meter_mc._y = diagh/2;
circle_mc.clear();
circle_mc.lineStyle(1,0,100);
circle_mc.drawCircle(0,0,rad);
sine_mc.drawDiagram = function()
{
this.clear();
this.lineStyle(1,0x777777,100);
this.moveTo(0,0);
this.lineTo(0+diagw,0);
this.lineTo(0+diagw,0+diagh);
this.lineTo(0,0+diagh);
this.lineTo(0,0);
this.lineStyle(1,0x777777,50);
this.moveTo(0,diagh/2);
this.lineTo(diagw,diagh/2);
this.waves_mc.clear();
this.waves_mc.lineStyle(1,0x0000FF,100);
this.waves_mc.moveTo(0,0);
for (var i = 0; i <= 360; ++i) {
var a = i*Math.PI/180;
var x = i*diagw/360;
var y = -Math.sin(a)*diagh/2;
this.waves_mc.lineTo(x,y);
}
this.waves_mc.lineStyle(1,0x00FF00,100);
this.waves_mc.moveTo(0,diagh/2);
for (var i = 0; i <= 360; ++i) {
var a = i*Math.PI/180;
var x = i*diagw/360;
var y = Math.cos(a)*diagh/2;
this.waves_mc.lineTo(x,y);
}
}
sine_mc.drawDiagram();
triangle_mc.onMouseMove = function()
{
var dy = this._ymouse;
var dx = this._xmouse;
var angle = Math.atan2(dy,dx);
var x = Math.cos(angle)*rad;
var y = Math.sin(angle)*rad;
this.clear();
this.lineStyle(1,0x00FF00,50);
this.moveTo(0,0);
this.lineStyle(1,0x00FF00,50);
this.lineTo(x,0);
this.lineStyle(1,0x0000FF,50);
this.lineTo(x,y);
this.lineStyle(2,0xFF0000,50);
this.lineTo(0,0);
var x = diagw/2 + diagw*.5*angle/Math.PI;
_root.sine_mc.meter_mc.clear();
_root.sine_mc.meter_mc.lineStyle(1,0,50);
_root.sine_mc.meter_mc.moveTo(x,-diagh/2);
_root.sine_mc.meter_mc.lineTo(x,diagh/2);
} |