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
?
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
?
Documentation Answer:
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).
Thank you for your kindly reply. I have an additional question.
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.