import time
import math
class Boat:
def __init__(self, pace, spm, var=0.5):
self.pace = pace #average velocity of the boat in m/s
self.sps = spm/60.0 #strokes per second
self.var = var #variation in speed from 0-1
self.totalT = 0 #total time
self.distance = 0 #distance traveled
def move(self, deltaT):
self.totalT += deltaT
timeCalc = self.totalT + self.var * math.sin(self.totalT / self.sps * 2*math.pi)
self.distance = self.pace * timeCalc
boat1 = Boat(10.0, 20.0, 0.5)
prevDist = 0.0
print "Time\t\tDistance\tDeltaDistance"
for index in range(0,30):
boat1.move(0.1)
print "%.2f\t\t%.2f\t\t%.2f" % (index / 10.0, boat1.distance, boat1.distance - prevDist)
prevDist = boat1.distance
time.sleep(0.1)
print "Rowed 3 seconds, distance: %.2f" % (boat1.distance)
aW1wb3J0IHRpbWUKaW1wb3J0IG1hdGgKCmNsYXNzIEJvYXQ6CiAgICBkZWYgX19pbml0X18oc2VsZiwgcGFjZSwgc3BtLCB2YXI9MC41KToKICAgICAgICBzZWxmLnBhY2UgPSBwYWNlICAgICNhdmVyYWdlIHZlbG9jaXR5IG9mIHRoZSBib2F0IGluIG0vcwogICAgICAgIHNlbGYuc3BzID0gc3BtLzYwLjAgI3N0cm9rZXMgcGVyIHNlY29uZAogICAgICAgIHNlbGYudmFyID0gdmFyICAgICAgI3ZhcmlhdGlvbiBpbiBzcGVlZCBmcm9tIDAtMQogICAgICAgIHNlbGYudG90YWxUID0gMCAgICAgI3RvdGFsIHRpbWUKICAgICAgICBzZWxmLmRpc3RhbmNlID0gMCAgICNkaXN0YW5jZSB0cmF2ZWxlZAoKICAgIGRlZiBtb3ZlKHNlbGYsIGRlbHRhVCk6CiAgICAgICAgc2VsZi50b3RhbFQgKz0gZGVsdGFUCiAgICAgICAgdGltZUNhbGMgPSBzZWxmLnRvdGFsVCArIHNlbGYudmFyICogbWF0aC5zaW4oc2VsZi50b3RhbFQgLyBzZWxmLnNwcyAqIDIqbWF0aC5waSkKICAgICAgICBzZWxmLmRpc3RhbmNlID0gc2VsZi5wYWNlICogdGltZUNhbGMKCmJvYXQxID0gQm9hdCgxMC4wLCAyMC4wLCAwLjUpCnByZXZEaXN0ID0gMC4wCnByaW50ICJUaW1lXHRcdERpc3RhbmNlXHREZWx0YURpc3RhbmNlIgpmb3IgaW5kZXggaW4gcmFuZ2UoMCwzMCk6CiAgICBib2F0MS5tb3ZlKDAuMSkKICAgIHByaW50ICIlLjJmXHRcdCUuMmZcdFx0JS4yZiIgJSAoaW5kZXggLyAxMC4wLCBib2F0MS5kaXN0YW5jZSwgYm9hdDEuZGlzdGFuY2UgLSBwcmV2RGlzdCkKICAgIHByZXZEaXN0ID0gYm9hdDEuZGlzdGFuY2UKICAgIHRpbWUuc2xlZXAoMC4xKQogICAgCnByaW50ICJSb3dlZCAzIHNlY29uZHMsIGRpc3RhbmNlOiAlLjJmIiAlIChib2F0MS5kaXN0YW5jZSk=