Forked from: 178ep3's 単位球面上の移動 diff:16 forked from: 単位球面上の移動 ColorTransformの方がいい気がしてきた uwi forked:3favorite:7lines:81license : MIT License modified : 2009-07-28 21:36:29 Embed Tweet // ColorTransformの方がいい気がしてきた // forked from 178ep3's 単位球面上の移動 package { import flash.display.Sprite; import flash.events.Event; [SWF(width=465, height=465, frameRate=30, backgroundColor=0x000000)] public class Sphere extends Sprite { private const N : int = 100; public function Sphere() { var i:int = 0; var list:Array = []; for(i=0; i<N; i++) { var d:Dot = addChild(new Dot(i))as Dot; list.push(d); } addEventListener(Event.ENTER_FRAME,upup); function upup(e:Event):void { for(i=0; i<N; i++) { list[i].loop(); } } } } } import flash.display.Shape; import flash.display.Sprite; import flash.events.Event; class Dot extends Sprite { private var _x:Number=0; private var _y:Number=0; private var _z:Number=0; private var _r:uint = 1; private var _xyAngle:Number = 0; private var _xzAngle:Number = 0; private var _xyAdd:Number; private var _xzAdd:Number; private var _rad:uint=100; private var _dot:Shape; private var _num:int; public function Dot(setNum:int) { _num = setNum; _xyAngle = setNum*6-90; _xzAngle = setNum*10; this.x = 238; this.y = 238; _xyAdd = 0.7; _xzAdd = 1.11; init(); } private function init():void { _dot = addChild(new Shape())as Shape; with(_dot.graphics) { beginFill(uint(0xff * _num / 100) * 0x10101); drawCircle(0,0,3); endFill(); } } public function loop():void { _xyAngle +=_xyAdd; _xzAngle +=_xzAdd; if(_xyAngle>360)_xyAngle-=360; if(_xzAngle>360)_xzAngle-=360; _x = Math.cos(_xyAngle*Math.PI/180); _y = Math.sin(_xyAngle*Math.PI/180); _x = _x * Math.cos(_xzAngle*Math.PI/180); _z = Math.sqrt(1 - _x * _x - _y * _y); if(_xzAngle>180)_z*=-1; _dot.x = _x*_rad; _dot.y = _y*_rad; _dot.scaleX = _dot.scaleY = _z+1.1; } } Code Fullscreen Preview Fullscreen twelvetoes hikipuro paq sw_lucchini koutan : [奇麗] swingpants : cosinemonochromepath ikusu : なんだかいいかんじ [奇麗] cosine monochrome path graphics Math.PI scaleY scaleX Math.cos Math.sqrt addChild addEventListener push Math.sin Event.ENTER_FRAME Event Array uint Sprite int Number sort new page view favorite forked pv469 forked from: forked from: 単位球面.. zaltech forked:2 favorite:1lines:75 (diff:99) pv281 forked from: forked from: 単位球面.. dezimo forked:0 favorite:1lines:81 (diff:1) pv0 forked from: forked from: 単位球面.. SF7 forked:0 favorite:0lines:81 (diff:1)