Я работаю над небольшой программой, показывающей движущиеся гребные лодки. Ниже приведен простой пример кода (Python 2.x):Код, похожий на ход гребля
import time
class Boat:
def __init__(self, pace, spm):
self.pace = pace #velocity of the boat in m/s
self.spm = spm #strokes per minute
self.distance = 0 #distance travelled
def move(self, deltaT):
self.distance = self.distance + (self.pace * deltaT)
boat1 = Boat(3.33, 20)
while True:
boat1.move(0.1)
print boat1.distance
time.sleep(0.1)
Как вы можете видеть, лодка имеет темп и строки с числом ударов в минуту. Каждый раз, когда метод move(deltaT)
называется, он перемещается на определенное расстояние в соответствии с темпом.
Вышеупомянутая лодка просто путешествует в постоянном темпе, что нереально. Настоящая гребная лодка ускоряется в начале хода, а затем замедляется после того, как гребные лезвия покинули воду. Есть много графиков онлайн, которые показывают типичную кривую гребной (усилие, показанное здесь, скорость выглядит примерно):
Источник: highperformancerowing.net
Темп должен быть постоянным в течение долгого времени, но это должно измениться в течение хода.
Каков наилучший способ изменить постоянную скорость на кривую, которая (по крайней мере в основном) напоминает более реалистичный ход гребля?
Примечание: Любые идеи о том, как лучше отметить этот вопрос? Это проблема алгоритма?
Используйте сплайн-интерполяцию, например, из SciPy. – nwk
См. Также сайт SE для статистики http://stats.stackexchange.com – smci
И сглаживающее преобразование stat_smooth в библиотеке ggplot. – smci