class_docstr: Static class which draws rectangular vertices
class_docstr_tok: ["Static","class","which","draws","rectangular","vertices"]
docstr: Draws a rectangle-shaped path on the Cairo context without stroking
  or filling it.
  @see: ShapeDrawer.draw_path
docstr_tok: ["Draws","a","rectangle-shaped","path","on","the","Cairo","context","without","stroking","or","filling","it",".","@","see",":","ShapeDrawer.draw_path"]
code: def draw_path(ctx, center_x, center_y, width, height=None, **kwargs):
      """Draws a rectangle-shaped path on the Cairo context without stroking
      or filling it.
      @see: ShapeDrawer.draw_path"""
      height = height or width
      if hasattr(plt, "Axes") and isinstance(ctx, plt.Axes):
          return mpl.patches.Rectangle(
              (-width / 2, -height / 2),
              width,
              height,
              clip_on=True,
              **kwargs,
          )
      else:
          ctx.rectangle(
              center_x - width / 2, center_y - height / 2, width, height
          )
  
imports: from abc import ABCMeta, abstractmethod
  from math import atan2, copysign, cos, pi, sin
  import sys
  from igraph.drawing.matplotlib.utils import find_matplotlib
label_desc: Use image node_id 1 for calling the RectangleDrawer obj's underlying member method code with example usage: obj.draw_path(ctx, center_x, center_y, width, height) and returns: mpl