Forked from: makc3d's Galaxy (Pixels) diff:30 Galaxy (Sandy 3D) makc3d forked:6favorite:4lines:65license : see code comments modified : 2009-03-06 07:07:09 Embed Tweet // forked from makc3d's Galaxy (Pixels) package { import flash.events.Event; import flash.filters.GlowFilter; import sandy.core.*; import sandy.core.data.*; import sandy.core.scenegraph.*; import sandy.primitive.*; import sandy.materials.*; import sandy.view.*; [SWF (width=465, height=465, backgroundColor=0x0, frameRate=20)] public class Galaxy extends BasicView { private var sf:StarField; public function Galaxy() { super (); init (465, 465); camera.z = -220; sf = new StarField (); rootNode.addChild (sf); var stars:Array = []; generate (stars); generate (stars); generate (stars); generate (stars); generate (stars); generate (stars); // trying to give central stars more visibility // by placing them after other stars (works ??) stars.reverse (); for each (var obj:Object in stars) { sf.stars.push (new Vertex (obj.x, obj.y, obj.z)); sf.starColors.push (obj.c + 0x1000000 * obj.a); } render (); filters = [ new GlowFilter (0x007fff, 0.5, 30, 30, 10) ]; } override public function simpleRender(e:Event = null):void { sf.pan += 2; sf.roll += 1; super.simpleRender (e); } private function generate (stars:Array):void { // I wrote this code back in late '90s in TurboPascal // By now, I have no idea how it works, and what those magic numbers are :) var I:Number, J:Number, K:Number, s:Number, L:Number, d:Number, R:Number, dX:Number, dY:Number, dZ:Number, c2:Number; var Rm:Number = 20, A:Number = 0.3; var clr:Array = [0x0080FF, 0x8080E4, 0xB0B0FF]; for (I = 0; I < 101; I++) { A = A + 0.03; R = A * Rm; for (J = 0; J < 5 - Math.floor(I / 20); J++) { for (K = 0; K < 5; K++) { L = clr[(R > 3 * Rm * Math.random()) ? 0 : 1]; c2 = (R > 2 * Rm * Math.random()) ? 1 : 2; if (A < 0.6) L = clr[2]; s = Math.max (2, Rm - R / 3); dX = R * Math.cos(A + K * 2 * Math.PI / 5) + 0.2 * ((100 - I) * Math.random() + I / 2); dY = R * Math.sin(A + K * 2 * Math.PI / 5) + 0.2 * ((100 - I) * Math.random() + I / 2); dZ = s * (Math.random() - Math.random()); stars.push ({ x: dX, y: dY, z: dZ, c: L, a: (255 - 120 * c2) }); } } } } } } Code Fullscreen Preview Fullscreen xor shaktool toby : 3dparticleパーティクルで銀河みたいなの mash : 3dsandywow 3d particle sandy stars generate filters roll pan init BasicView simpleRender Vertex render reverse GlowFilter Math.max Math.floor Math.PI Object push Math.cos Array Math.sin sort new page view favorite forked pv0 forked from: Galaxy (Sandy 3D).. Myke.Fermin forked:0 favorite:0lines:65 (diff:1) pv839 forked from: Galaxy (Sandy 3D).. ozdy forked:3 favorite:5lines:65 (diff:3) tag: 3D fun good sandy3D pv461 forked from: Galaxy (Sandy 3D).. Razorblade forked:2 favorite:0lines:65 (diff:1) pv481 forked from: Galaxy (Sandy 3D).. hacker_e_myba3z forked:1 favorite:0lines:0 (diff:85) pv405 forked from: Galaxy (Sandy 3D).. moriyoshi forked:0 favorite:0lines:65 (diff:7) pv612 forked from: Galaxy (Sandy 3D).. yd_niku forked:0 favorite:0lines:67 (diff:8)