Hey guys! I have a pretty complex problem, but Im sure itll be easy
for some of you!
Anyways, I have this globe that you can click on the surface, and it
places another sphere where u clicked, based on how far you dragged
after clicking...that becomes the radius of the new smaller sphere.
I am zooming the camera into the sphere, but it is always a different
size when u get zoomed up to it, because the radius is independent of
the zooming script. What I need help on, is a way to inorporate the
RADIUS of the new sphere into the zooming math, so that I can control
how large the new sphere should be each time...I just want the sphere
to be the same size every time they place a sphere and it zooms, no
matter what the radius of the sphere is...
see what I mean?
Thanks so much!!
here is the code so far:
// New idea use bigger radius with lon/lat data
var phi:Number = (90 - _currentLat) * Math.PI / 180;
var theta:Number = (_currentLon) * Math.PI / 180;
// THIS NEXT LINE IS WHERE IM TRYING TO DO THE NEW
CURRENTSELECTEDRADIUS incporporation
/*// EARTHRADIUS + ZOOM_DISTANCE_FROM_SURFACE is the
distance from
the planet to do
// NEW WAY this is where the camera zooms to -
integrating with
currentSelectedRadius of sphere.
var cameraZoomX:Number = ((EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE) * Math.sin(phi) * Math.cos(theta)) /
currentSelectedRadius;
var cameraZoomZ:Number = ((EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE) * Math.sin(phi) * Math.sin(theta)) /
currentSelectedRadius;
var cameraZoomY:Number = ((EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE) * Math.cos(phi)) /
currentSelectedRadius;*/
// OLD WAY
var cameraZoomX:Number = (EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE)
* Math.sin(phi) * Math.cos(theta);
var cameraZoomZ:Number = (EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE)
* Math.sin(phi) * Math.sin(theta);
var cameraZoomY:Number = (EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE)
* Math.cos(phi);
var tagX:Number = (EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE + 500)
* Math.sin(phi) * Math.cos(theta);
var tagZ:Number = (EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE + 500)
* Math.sin(phi) * Math.sin(theta);
var tagY:Number = (EARTHRADIUS +
ZOOM_DISTANCE_FROM_SURFACE + 500)
* Math.cos(phi);
TweenLite.to(zoomCamera, 3, { x: cameraZoomX, y:
cameraZoomY, z:
cameraZoomZ, ease:Expo.easeOut} );