class_docstr: Virtual Trackball Control.
  
  >>> ball = Arcball()
  >>> ball = Arcball(initial=numpy.identity(4))
  >>> ball.place([320, 320], 320)
  >>> ball.down([500, 250])
  >>> ball.drag([475, 275])
  >>> R = ball.matrix()
  >>> numpy.allclose(numpy.sum(R), 3.90583455)
  True
  >>> ball = Arcball(initial=[1, 0, 0, 0])
  >>> ball.place([320, 320], 320)
  >>> ball.setaxes([1, 1, 0], [-1, 1, 0])
  >>> ball.constrain = True
  >>> ball.down([400, 200])
  >>> ball.drag([200, 400])
  >>> R = ball.matrix()
  >>> numpy.allclose(numpy.sum(R), 0.2055924)
  True
  >>> ball.next()
docstr: Place Arcball, e.g. when window size changes.
  
  center : sequence[2]
      Window coordinates of trackball center.
  radius : float
      Radius of trackball in window coordinates.
docstr_tok: ["Place","Arcball",",","e.g",".","when","window","size","changes",".","center",":","sequence","[","2","]","Window","coordinates","of","trackball","center",".","radius",":","float","Radius","of","trackball","in","window","coordinates","."]
code: def place(self, center, radius):
      """Place Arcball, e.g. when window size changes.
  
      center : sequence[2]
          Window coordinates of trackball center.
      radius : float
          Radius of trackball in window coordinates.
  
      """
      self._radius = float(radius)
      self._center[0] = center[0]
      self._center[1] = center[1]
  
imports: import math
  import numpy
label_desc: Use image node_id 2 for calling the Arcball obj's underlying member method code with example usage: obj.place(center, radius) without return types