package { import flash.display.Shape; public class actionscript_book_AlgorithmicVisualGenerator_com_example_programmingas3_algorithmic_Satellite extends Shape { public var position:Number; public var color:uint; public var radius:Number; public var orbitRadius:Number; public function actionscript_book_AlgorithmicVisualGenerator_com_example_programmingas3_algorithmic_Satellite(position:Number,color:uint) { this.position = position; this.color = color; } public function draw(useAlphaEffect:Boolean = false):void { var radians:Number = getRadians(position); var posX:Number = Math.sin(radians) * orbitRadius; var posY:Number = Math.cos(radians) * orbitRadius; graphics.clear(); graphics.beginFill(color); graphics.drawCircle(posX, posY, radius); alpha = useAlphaEffect ? Math.abs(Math.sin(radians)) : 1; } private function getRadians(degrees:Number):Number { return degrees * Math.PI / 180; } private function getDegrees(radians:Number):uint { return Math.round(180 * radians / Math.PI) } } }