# What's the relationship between Dolly and Zoom?

`vtkCamera` has two methods for zoom in/out: `Dolly` and `Zoom`. What’s relationship between `Dolly` and `Zoom`?

Moreover, for `vtkCamera::Dolly(dolly)` and `vtkCamera::Zoom(zoomfactor)`, how to convert the `dolly` to `zoomfactor`?

``````Dolly(double value): Divide the camera's distance from the focal point by the given dolly value

Zoom(double value): In perspective mode, decrease the view angle by the specified factor.
``````

So Dolly moves the eye position closer to the focal point. Whereas zoom actually just changes the field of view. Causing more perspective divide when doing perspective projection (so the image is more warped, looking down hallway, sides pinched in effect).

How can I increase size of image equal to 100%, 200%?

For 100%, I mean one screen pixel indicate 1 mm.
For 200%, I mean one screen pixel indicate 0.5 mm.

If I want one screen pixel indicate 1 mm, how to calculate the distance between camera focal point and camera position?

I using the following code to calculate the resolution:

``````    worldPoint0 = computeDisplayToWorld(0, 0)
worldPoint1 = computeDisplayToWorld(0, 1)
factor = norm(worldPoint1 - worldPoint0)
``````

The `factor` indicates the distance that one screen pixel represent.

Then, I calculate the distance between camare focal point and camera position:

``````    cameraPosition = getCameraPosition()
cameraFocalPoint = getCameraFocalPoint()
distance = norm(cameraPosition - cameraFocalPoint)
``````

Then, I find `distance/factor` is a constant value when I zoom in/out the image.

Am I correct?

In addition, when the vtk window size is changed, the `distance/factor` is also changed.