# 
# Drop a curve
#
#
import math

papercolor = 0
rseed = g.getTime(4)

g.paper(papercolor)
g.norefresh()
g.antialias(1)

def random():
        bb = 198621
        mm = (98621+g.getTime(4))
        bl = (long(rseed)*bb+1)
        temp = bl%mm
        return int(temp%100),int(temp)

def droppoints():
        points = []

        for x in range(0,101):
                y1 = int(amp1*math.sin(2*math.pi*omega1/100*x))
                y2 = int(amp2*math.cos(2*math.pi*omega2/100*x))
                points.append(5+int(amp2+amp1)+y1+y2)
        
        return points

def dropper(map,state,collision,color):
        for x in map:
                if state[x] == collision[x]:
                        g.setPixel(x,state[x],color)
                        state[x] = 99
                        collision[x] = collision[x] + 1
                else:
                        g.setPixel(x,state[x],papercolor)
                        state[x] = state[x] - 1
                        g.setPixel(x,state[x],color)

        return state,collision

omega1 = 7.0
omega2 = 9.0
amp1 = 10.0
amp2 = 8.0

launch = []
for x in range(0,101):
        launch.append(99)

baseline = droppoints()

while 1:
        temp = []
        for x in range(0,101):
                rand, rseed = random()
                temp.append(rand)
        launch, baseline = dropper(temp,launch,baseline,100)
        g.refresh()