У меня есть список векторов, список скаляров и начальная точка, представленная кортежем.Совокупная сумма векторов из точки
vecs = [(1,1), (2,3), (-1,1)]
scalars = [2, 3, 2]
start = (-5,0)
У меня есть функция для добавления «k раз» к точке.
def add_vector(point, k, vec):
return (point[0]+k*vec[0], point[1]+k*vec[1])
Я хотел бы получить список точек на ломаной линии, что:
result[0] = start
result[n+1] = add_vector(result[n], scalars[n], vecs[n])
Я думал использовать itertools.accumulate
но func
аргумент должен быть функцией двух аргументов. Есть идеи ?
Можно ли накопить x, а затем y? Объедините x и y, чтобы стать вектором – Striker
@ strike: это не было бы идеальным, так как мои точки на самом деле являются подклассом кортежа с добавленными свойствами 'point.x' и' point.y', то же самое для векторов. –
Если ваши точки являются подклассом кортежа, почему ваша функция 'add_vector' не возвращает экземпляр этого класса? – holdenweb