def open_curve(vertices)
      return if vertices.empty?
      vertices = vertices.dup
      origin = vertices.shift
      move_to(origin[:point])
      previous_handle2 = origin[:handle2]
      vertices.each do |vertex|
        curve_to(vertex[:point],
                 :bounds => [previous_handle2 || vertex[:point],
                             vertex[:handle1] || vertex[:point]])
        previous_handle2 = vertex[:handle2]
      end
    end
def open_curve(vertices)
      return if vertices.empty?
      vertices = vertices.dup
      origin = vertices.shift
      move_to(origin[:point])
      previous_handle2 = origin[:handle2]
      vertices.each do |vertex|
        curve_to(vertex[:point],
                 :bounds => [previous_handle2 || vertex[:point],
                             vertex[:handle1] || vertex[:point]])
        previous_handle2 = vertex[:handle2]
      end
    end
vertices is an array of hashes containing :vertex and optional
 :handle1 and :handle2 elements