( sp, flat, i=1 )
Break up a bezier curve into smaller curves, each of which
  is approximately a straight line within a given tolerance
  (the "smoothness" defined by [flat]).

  This is a modified version of cspsubdiv.cspsubdiv(). I rewrote the recursive
  call because it caused recursion-depth errors on complicated line segments.
Break up a bezier curve into smaller curves, each of which
  is approximately a straight line within a given tolerance
  (the "smoothness" defined by [flat]).
Break up a bezier curve into smaller curves each of which is approximately a straight line within a given tolerance ( the smoothness defined by [ flat ] ) .
def subdivideCubicPath( sp, flat, i=1 ):
  """
  Break up a bezier curve into smaller curves, each of which
  is approximately a straight line within a given tolerance
  (the "smoothness" defined by [flat]).

  This is a modified version of cspsubdiv.cspsubdiv(). I rewrote the recursive
  call because it caused recursion-depth errors on complicated line segments.
  """

  while True:
    while True:
      if i >= len( sp ):
        return

      p0 = sp[i - 1][1]
      p1 = sp[i - 1][2]
      p2 = sp[i][0]
      p3 = sp[i][1]

      b = ( p0, p1, p2, p3 )

      if cspsubdiv.maxdist( b ) > flat:
        break

      i += 1

    one, two = beziersplitatt( b, 0.5 )
    sp[i - 1][2] = one[1]
    sp[i][0] = two[2]
    p = [one[2], one[3], two[1]]
    sp[i:1] = [p]
def subdivideCubicPath ( sp , flat , i = 1 ) : while True : while True : if i >= len ( sp ) : return p0 = sp [ i - 1 ] [ 1 ] p1 = sp [ i - 1 ] [ 2 ] p2 = sp [ i ] [ 0 ] p3 = sp [ i ] [ 1 ] b = ( p0 , p1 , p2 , p3 ) if cspsubdiv . maxdist ( b ) > flat : break i += 1 one , two = beziersplitatt ( b , 0.5 ) sp [ i - 1 ] [ 2 ] = one [ 1 ] sp [ i ] [ 0 ] = two [ 2 ] p = [ one [ 2 ] , one [ 3 ] , two [ 1 ] ] sp [ i : 1 ] = [ p ]