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.0 * math.pi)
self.distance = self.pace * timeCalc
boat1 = Boat(10.0, 20.0, 0.4)
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)
aW1wb3J0IHRpbWUKaW1wb3J0IG1hdGgKCmNsYXNzIEJvYXQ6CiAgICBkZWYgX19pbml0X18oc2VsZiwgcGFjZSwgc3BtLCB2YXI9MC41KToKICAgICAgICBzZWxmLnBhY2UgPSBwYWNlICAgICNhdmVyYWdlIHZlbG9jaXR5IG9mIHRoZSBib2F0IGluIG0vcwogICAgICAgIHNlbGYuc3BzID0gc3BtLzYwLjAgI3N0cm9rZXMgcGVyIHNlY29uZAogICAgICAgIHNlbGYudmFyID0gdmFyICAgICAgI3ZhcmlhdGlvbiBpbiBzcGVlZCBmcm9tIDAtMQogICAgICAgIHNlbGYudG90YWxUID0gMCAgICAgI3RvdGFsIHRpbWUKICAgICAgICBzZWxmLmRpc3RhbmNlID0gMCAgICNkaXN0YW5jZSB0cmF2ZWxlZAoKICAgIGRlZiBtb3ZlKHNlbGYsIGRlbHRhVCk6CiAgICAgICAgc2VsZi50b3RhbFQgKz0gZGVsdGFUCiAgICAgICAgdGltZUNhbGMgPSBzZWxmLnRvdGFsVCArIHNlbGYudmFyICogLW1hdGguc2luKHNlbGYudG90YWxUICogc2VsZi5zcHMgKiAyLjAgKiBtYXRoLnBpKQogICAgICAgIHNlbGYuZGlzdGFuY2UgPSBzZWxmLnBhY2UgKiB0aW1lQ2FsYwoKYm9hdDEgPSBCb2F0KDEwLjAsIDIwLjAsIDAuNCkKcHJldkRpc3QgPSAwLjAKcHJpbnQgIlRpbWVcdFx0RGlzdGFuY2VcdERlbHRhRGlzdGFuY2UiCmZvciBpbmRleCBpbiByYW5nZSgwLDMwKToKICAgIGJvYXQxLm1vdmUoMC4xKQogICAgcHJpbnQgIiUuMmZcdFx0JS4yZlx0XHQlLjJmIiAlIChpbmRleCAvIDEwLjAsIGJvYXQxLmRpc3RhbmNlLCBib2F0MS5kaXN0YW5jZSAtIHByZXZEaXN0KQogICAgcHJldkRpc3QgPSBib2F0MS5kaXN0YW5jZQogICAgdGltZS5zbGVlcCgwLjEpCiAgICAKcHJpbnQgIlJvd2VkIDMgc2Vjb25kcywgZGlzdGFuY2U6ICUuMmYiICUgKGJvYXQxLmRpc3RhbmNlKQ==