def intermediate_points(start, end, graph_data):
 newdata = []
 newdata.append((start, (graph_data[0][0] + ((graph_data[1][0] - graph_data[0][0]) / 2.0)), graph_data[0][1]))
 for index in range(1, (len(graph_data) - 1)):
  (lastxval, lastyval) = graph_data[(index - 1)]
  (xval, yval) = graph_data[index]
  (nextxval, nextyval) = graph_data[(index + 1)]
  newdata.append(((lastxval + ((xval - lastxval) / 2.0)), (xval + ((nextxval - xval) / 2.0)), yval))
 newdata.append(((xval + ((nextxval - xval) / 2.0)), end, graph_data[(-1)][1]))
 return newdata

def intermediate_points ( start , end , graph_data ) : newdata = [ ] newdata . append ( ( start , ( graph_data [ 0 ] [ 0 ] + ( ( graph_data [ 1 ] [ 0 ] - graph_data [ 0 ] [ 0 ] ) / 2.0 ) ) , graph_data [ 0 ] [ 1 ] ) ) for index in range ( 1 , ( len ( graph_data ) - 1 ) ) : ( lastxval , lastyval ) = graph_data [ ( index - 1 ) ] ( xval , yval ) = graph_data [ index ] ( nextxval , nextyval ) = graph_data [ ( index + 1 ) ] newdata . append ( ( ( lastxval + ( ( xval - lastxval ) / 2.0 ) ) , ( xval + ( ( nextxval - xval ) / 2.0 ) ) , yval ) ) newdata . append ( ( ( xval + ( ( nextxval - xval ) / 2.0 ) ) , end , graph_data [ ( - 1 ) ] [ 1 ] ) ) return newdata
generate intermediate points describing provided graph data .