code: def arc_by_center(x, y, arc_box, constant_length, thickness, gaussian_width):
      
  
      arc_w=arc_box[0]
      arc_h=abs(arc_box[1])
  
      if arc_w==0.0: # arc_w=0, don't draw anything
          radius=0.0
          angles=(0.0,0.0)
      elif arc_h==0.0:  # draw a horizontal line, width=arc_w
          return smooth_rectangle(x, y, arc_w, thickness, 0.0, gaussian_width)
      else:
          if constant_length:
              curvature=arc_h/arc_w
              radius=arc_w/(2*pi*curvature)
              angle=curvature*(2*pi)/2.0
          else:  # constant width
              radius=arc_h/2.0+arc_w**2.0/(8*arc_h)
              angle=np.arcsin(arc_w/2.0/radius)
          if arc_box[1]<0: # convex shape
              y=y+radius
              angles=(3.0/2.0*pi-angle, 3.0/2.0*pi+angle)
          else:  # concave shape
              y=y-radius
              angles=(pi/2.0-angle, pi/2.0+angle)
  
      return arc_by_radian(x, y, radius*2.0, angles, thickness, gaussian_width)
docs: Arc with Gaussian fall-off after the solid ring-shaped region and specified
      by point of tangency (x and y) and arc width and height.
  
      This function calculates the start and end radian from the given width and
      height, and then calls arc_by_radian function to draw the curve.