vispy.scene.cameras.turntable module

class vispy.scene.cameras.turntable.TurntableCamera(fov=45.0, elevation=30.0, azimuth=30.0, roll=0.0, distance=None, translate_speed=1.0, **kwargs)[source]

Bases: vispy.scene.cameras.perspective.Base3DRotationCamera

3D camera class that orbits around a center point while maintaining a view on a center point.

For this camera, the scale_factor indicates the zoom level, and the center indicates the position to put at the center of the view.

Parameters
fovfloat

Field of view. Zero (default) means orthographic projection.

elevationfloat

Elevation angle in degrees. Positive angles place the camera above the cente point, negative angles place the camera below the center point.

azimuthfloat

Azimuth angle in degrees. Zero degrees places the camera on the positive x-axis, pointing in the negative x direction.

rollfloat

Roll angle in degrees

distancefloat | None

The distance of the camera from the rotation point (only makes sense if fov > 0). If None (default) the distance is determined from the scale_factor and fov.

translate_speedfloat

Scale factor on translation speed when moving the camera center point.

**kwargsdict

Keyword arguments to pass to BaseCamera.

Notes

Interaction:

  • LMB: orbits the view around its center point.

  • RMB or scroll: change scale_factor (i.e. zoom level)

  • SHIFT + LMB: translate the center point

  • SHIFT + RMB: change FOV

property azimuth

The angle of the camera in degrees around the y axis. An angle of 0 places the camera within the (y, z) plane.

property elevation

The angle of the camera in degrees above the horizontal (x, z) plane.

orbit(azim, elev)[source]

Orbits the camera around the center position.

Parameters
azimfloat

Angle in degrees to rotate horizontally around the center point.

elevfloat

Angle in degrees to rotate vertically around the center point.

property roll

The angle of the camera in degrees around the z axis. An angle of 0 places puts the camera upright.