Then again, this looks a bit odd to me. Surely the x term
( _camera.focus*_camera.zoom +_clipTop*_clipBottom) will always
dominate here. Which explains why the result is always just under 180
degrees.
Anyone know how this works?


On Oct 7, 10:38 am, DrMcCleod <[email protected]> wrote:
> Thanks, that should help me find out what is going on.
>
> On Oct 7, 12:23 am, Pavel Jacko <[email protected]> wrote:
>
> > //calculated from the arctan addition formula arctan(x) + arctan(y) =
> > arctan(x + y / 1 - x*y)
> > return Math.atan2(_clipTop - _clipBottom, _camera.focus*_camera.zoom +
> > _clipTop*_clipBottom)*toDEGREES;
>
> > this is in function getFOV() implemented by ILens interface
> > you can have closer look if you go to away3d.cameras.lenses package
> > and open some lenses class.
>
> > Hope this helps little bit.
>
> > Pavel
>
> > On Oct 6, 3:31 pm, DrMcCleod <[email protected]> wrote:
>
> > > I need to explicitly set the Field of View angle of my camera but I am
> > > having trouble doing so.
>
> > > example:
>
> > > (in constructor)
> > > {
> > > boundCamera = new Camera3D( { x:0, y:0, z: -100} );
> > > boundCamera.lens = new ZoomFocusLens();
>
> > > boundCamera.moveTo(0, 0, 0);
> > > boundCamera.centerPivot();
>
> > > boundCamera.fov = 30;
> > > boundCamera.zoom = 1;
>
> > > }
>
> > > (in enterFrameListener)
> > > {
> > > trace("fov: " + boundCamera.fov + " z: " + boundCamera.zoom + " f: " +
> > > boundCamera.focus);
>
> > > }
>
> > > When the program containing this code runs, the trace returns...
>
> > > fov: 179.489...  z: 1 f: 100
>
> > > And sure enough, the view looks very wide.
> > > What should I do to explicitly set the field of view, so in genuinely
> > > renders the correct angle?
>
> > > In fact, what is the calculation that relates fov to zoom and focus?
> > > It does not seem to be the same as Papervision

Reply via email to