class_docstr: A d-dimensional Bézier segment.
  
  Parameters
  ----------
  control_points : (N, d) array
      Location of the *N* control points.
code: def __init__(self, control_points):
      self._cpoints = np.asarray(control_points)
      self._N, self._d = self._cpoints.shape
      self._orders = np.arange(self._N)
      coeff = [
          math.factorial(self._N - 1)
          // (math.factorial(i) * math.factorial(self._N - 1 - i))
          for i in range(self._N)
      ]
      self._px = (self._cpoints.T * coeff).T
  
imports: from functools import lru_cache
  import math
  import warnings
  import numpy
  from matplotlib import _api
label_desc: Use image node_id 1 to create a new BezierSegment object  with example: obj = BezierSegment(control_points)