   I'm trying to implement an OS X-like dock. Need some pointers.
  I'm working on a tile map editor and I want to do something along the lines of OS X' or ObjectDock's expanding dock for the tool bar.I'm having some trouble wrapping my mind around how this is implemented. The effect almost looks like the icons are mapped to a sphere that follows the mouse. This isn't what is happening, but I'm at a loss as to what is being done. I'm guessing that the scale of the icons is based on a parabolic curve that follows the mouse.Does anyone have an idea how this is done? I've tried Google, but I cannot seem to divine the necessary search terms. I just need some tips to get me started.   
  You could start by trying to describe the 'feature' yourself too. I guess there are some of us, who doesn't know what you are talking about, but would help otherwise (sorry, I don't want to Google for it).   ;  If you've never seen the Mac OSX dock before, check out RocketDock or ObjectDock (the windows alternatives) - the linked front page has a demo of what it looks like.As to your problem;You're overcomplicating it; there's no spherical or 3d-math needed.  It just looks complicated.  All that's happening is: items close to the mouse cursor are increased in scale (let's say 3x their normal size).  This scale slowly declines for icons that are further away from the mouse, until you reach normal (1x) scale.Here's some pseudocode for you to mull over://////////////////////////////////////////////  Loop through each icon in the list,//  scaling them up or down, based on//  distance from the mouse cursor.////////////////////////////////////////////float maxScale = 3.0f;  //The largest allowable scalefloat minScale = 1.0f;  //The smallest allowable scaleint bubbleRadius = 60; //The "bubble's" radius, in number-of-pixels//Calculate the linear "slope" of the decreasing scale//( Slope = Rise / Run )float scaleSlope = (maxScale - minScale) / (float)(bubbleWidth);foreach(Icon currentIcon in iconList){    //find the current icon's horizontal distance from the mouse cursor    float distanceFromCursor = CalculateHorizontalDistanceFromCursor(currentIcon);    //interpolate the appropriate scale of the icon,    //based on its distance from the cursor    float calculatedScale = maxScale - (scaleSlope * distanceFromCursor);   //Don't let the icon's calculated scale go below the minimum (1.0x)    currentIcon.Scale = Math.Max(minScale, calculatedScale);}This is just off the top of my head; there's probably some tweaks that you'll need to make to get what you want.[Edited by - BTownTKD on May 19, 2010 2:19:39 PM];  To complement BTownTKD's example, you might want to take a look at this &#106avascript implementation: http://safalra.com/web-design/&#106avascript/mac-style-dock/demonstration.html.I would however caution you to also read his notes on usability - like many other Mac users, I disable dock icon magnification at the earliest opportunity.   ;  I like the effect, so I am going to implement it. However, I will have the option to turn it off.Thanks for the help. That should be enough to get me going.   