I always refer to this for all my trigonometry needs http://www.actionscript.org/resources/articles/155/1/trigonometry-and-flash/ Page1.html
> From: "Merrill, Jason" <[email protected]> > Reply-To: Flash Coders List <[email protected]> > Date: Mon, 16 Aug 2010 12:57:22 -0400 > To: Flash Coders List <[email protected]> > Conversation: [Flashcoders] Trigonometry Problem > Subject: RE: [Flashcoders] Trigonometry Problem > >>> have the items align into a circle at the nearest point, *keeping the > same angle* > > I'm not sure what that means exactly, but check out Point.polar() > > > Jason Merrill > > Instructional Technology Architect > Bank of America Global Learning > > Join the Bank of America Flash Platform Community and visit our > Instructional Technology Design Blog > (Note: these resources are only available for Bank of America > associates) > > > > > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of jared > stanley > Sent: Wednesday, August 11, 2010 3:51 PM > To: Flash Coders List > Subject: [Flashcoders] Trigonometry Problem > > hey all, > > working on getting a grid to expand into a circle. > > I would like to: > > - place items in a grid > - calculate angle from centerpoint(or any desired point) > - have the items align into a circle at the nearest point, *keeping > the > same angle* > > > here's my progress: > http://lab.freestyleinteractive.com/jared/maths/radius.html > > the start and end is pretty close to what i want, but i'd like the items > to rearrange keeping the same angle, so an item that was on the top left > would stay on the top left area and an item to the right in the grid > would stay to the right in a circle. > > hope this makes sense. > > code is below, thanks for any help! > > private function init():void{ > //create and center container clip > mainClip = new MovieClip(); //container clip for all items > addChild(mainClip); > mainClip.x = stage.stageWidth / 2; > mainClip.y = stage.stageHeight / 2; > > createParticles(); > > //draw circle around centerpoint for visual reference > mainClip.graphics.lineStyle(2, 0xffffff, .5); > mainClip.graphics.drawCircle(0, 0, 100); > // > stage.addEventListener(MouseEvent.CLICK, expand); > > } > > private function createParticles():void{ > for(var i:int = 0; i<maxParticles; i++){ > > var particle:Particle = new Particle();//just a sprite > with some properties > //create grid, calculate original X & Y positons; > particle.i = i; > particle.x = (particle.width + 5) * (i % 20); > particle.y = (particle.height + 5) * Math.floor(i / 20); > particle.ox = particle.x; > particle.oy = particle.y; > //calculate angle from the 0 point; > var rad:Number = Math.atan2(mainClip.x-particle.y, > mainClip.y-particle.x); > var angle:Number = rad * 180 / Math.PI; > particle.angle = angle; > mainClip.addChild(particle); > //put all particles in an array to be referenced below > particlesArr.push(particle); > } > > //code below is to recenter the grid on the centerpoint > instead of top left > var tmpw:Number = mainClip.width; > var tmph:Number = mainClip.height; > //loop through to offset the grid so it's even within the > page > for(i = 0; i<particlesArr.length; i++){ > var p:Particle = particlesArr[i]; > p.x -= tmpw* 0.5; > p.y -= tmph* 0.5; > p.ox = p.x; > p.oy = p.y > } > > addEventListener(Event.ENTER_FRAME, moveAll); > } > > > private function expand(e:MouseEvent):void{ > isGrid = !isGrid; > > for each (var p in particlesArr) { > p.tgtx = Math.cos(p.angle)*mag; > p.tgty = Math.sin(p.angle)*mag; > } > > } > > > private function moveAll(e:Event):void{ > var mainTgtX:Number; > var mainTgtY:Number; > > if(!isGrid){ > for each (var p in particlesArr) { > p.x += (p.tgtx - p.x) /20; > p.y += (p.tgty - p.y) /20; > } > > }else { > > for each (p in particlesArr) { > p.x += (p.ox - p.x) /20; > p.y += (p.oy- p.y) /10; > } > > } > _______________________________________________ > Flashcoders mailing list > [email protected] > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > _______________________________________________ > Flashcoders mailing list > [email protected] > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders This e-mail is intended only for the named person or entity to which it is addressed and contains valuable business information that is proprietary, privileged, confidential and/or otherwise protected from disclosure. If you received this e-mail in error, any review, use, dissemination, distribution or copying of this e-mail is strictly prohibited. Please notify us immediately of the error via e-mail to [email protected] and please delete the e-mail from your system, retaining no copies in any media. We appreciate your cooperation. _______________________________________________ Flashcoders mailing list [email protected] http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

