У меня нет конкретной задачи, нужно разобраться в реализации перемещения вектора. Объяснить, с примером, как это работает.
Занимаюсь разработкой ПО, где объект перемещается в пространстве. Пока он завязан на 2D вектор. После каждого перемещения он (вектор) нормализуется. Проблема с движением вперёд, а также с поворотом.
На примере. Имеем AB вектор. Скажем, с координатами (10, 9) и (7, 6). Я хочу повернуть его на 1 градус против часовой стрелки. Что мне для этого нужно сделать? Я читал про матрицы поворота и т.д., но разобраться не могу. Можно на примере?
И аналогично с движением вперёд. Мне нужно как бы продлить вектор вперёд по его направлению, условно, на 0.1. Какую формулу мне для этого использовать?
Когда B(0,0) у меня проблем нет, использую x * np.cos(ONE_GRAD) + y * np.sin(ONE_GRAD), y * np.cos(ONE_GRAD) - x * np.sin(ONE_GRAD), а при перемещении вперёд на 0.1 x + 0.1 * x / numpy.sqrt(x ** 2 + y ** 2), y + 0.1 * y / numpy.sqrt(x ** 2 + y ** 2).
Но вот как правильно реализовать вращение вокруг отличной от нуля точки, и соответственно двигать вперёд - вопрос.
P.s. Код пишу на Python, поэтому если задачу увидит программист и напишет с соответствующими примерами в коде, вообще отлично. Но это не обязательно.