Вычисление угла прыжка в PythonPython

Программы на Python
Ответить
Anonymous
 Вычисление угла прыжка в Python

Сообщение Anonymous »

Мне сложно понять, как точно вычислить на Python то, что я называю «углом прыжка». Итак, по сути, у меня есть карта отслеживания нескольких треков (факторов транскрипции), состоящая из позиций (x и y, то есть в 2D), и мне интересно найти угол перехода между двумя последовательными сегментами трека (см. следующий текст). фигура). Изменить: я изменил изображение, и поэтому представление, которое мне действительно нужно.

нажмите, чтобы увидеть изображение
Я пробовал много вещей, включая использование atan2, но это приводит к неправильное представление угла, по крайней мере, так, как я это сделал. Итак, я попытался вычислить это вручную, но это тоже не дало хорошего представления. Чуть ниже вы узнаете, как я это вычисляю

Код: Выделить всё

def calculate_jump_angles(x_coords, y_coords):
"""Calculate the jump angles between consecutive segments in a track."""
angles = []
for i in range(len(x_coords) - 2):
vec1 = (x_coords[i+1] - x_coords[i], y_coords[i+1] - y_coords[i])
vec2 = (x_coords[i+2] - x_coords[i+1], y_coords[i+2] - y_coords[i+1])
dot_product = vec1[0] * vec2[0] + vec1[1] * vec2[1]
mag1 = np.sqrt(vec1[0]**2 + vec1[1]**2)
mag2 = np.sqrt(vec2[0]**2 + vec2[1]**2)
cos_theta = dot_product / (mag1 * mag2)

cos_theta = np.clip(cos_theta, -1.0, 1.0)
angle = np.arccos(cos_theta)
cross_product = vec1[0] * vec2[1] - vec1[1] * vec2[0]
angle = angle if cross_product >= 0 else -angle
angles.append(angle)
return angles
где x_coords и y_coords — это соответственно координаты x и y одной дорожки.


Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»