class_docstr: Edge drawer implementation that draws undirected edges as
  straight lines and directed edges by using an alpha value of
  zero (total transparency) at the source and an alpha value of
  one (full opacity) at the destination. The alpha value is
  interpolated in-between.
class_docstr_tok: ["Edge","drawer","implementation","that","draws","undirected","edges","as","straight","lines","and","directed","edges","by","using","an","alpha","value","of","zero","(","total","transparency",")","at","the","source","and","an","alpha","value","of","one","(","full","opacity",")","at","the","destination",".","The","alpha","value","is","interpolated","in-between","."]
code: def __init__(self, context, palette):
      super().__init__(context, palette, 0.0, 1.0)
  
imports: from math import atan2, cos, pi, sin
  from igraph.drawing.baseclasses import AbstractEdgeDrawer
  from igraph.drawing.colors import clamp
  from igraph.drawing.metamagic import AttributeCollectorBase
  from igraph.drawing.utils import euclidean_distance, get_bezier_control_points_for_curved_edge, intersect_bezier_curve_and_circle
  from .utils import find_cairo
label_desc: Use image node_id 1 to create a new LightToDarkEdgeDrawer object from inherited base classes: AlphaVaryingEdgeDrawer with example: obj = LightToDarkEdgeDrawer(context, palette)