class_docstr: 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
  ----------
  fov : float
      Field of view. Zero (default) means orthographic projection.
  distance : float | 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_speed : float
      Scale factor on translation speed when moving the camera center point.
  **kwargs : dict
      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
docstr: Return a rotation matrix based on camera parameters
docstr_tok: ["Return","a","rotation","matrix","based","on","camera","parameters"]
code: def _get_rotation_tr(self):
      """Return a rotation matrix based on camera parameters"""
      rot, x, y, z = self._quaternion.get_axis_angle()
      return transforms.rotate(180 * rot / np.pi, (x, z, y))
  
file_path: vispy/vispy/scene/cameras/arcball.py
imports: from __future__ import division
  import numpy
  from ...util import transforms
  from ...util.quaternion import Quaternion
  from ...visuals.transforms import MatrixTransform
  from .perspective import Base3DRotationCamera
label_desc: Use image node_id 3 for calling the ArcballCamera obj's underlying member method code with example usage: obj._get_rotation_tr() and returns: transforms