Как найти угол между вектором и осью
Перейти к содержимому

Как найти угол между вектором и осью

  • автор:

Как найти угол между двумя векторами?

введите сюда описание изображения

Есть окружность r=44 на ней лежат точки: (0; 44) (28;33) и др. Как найти между ними угол? Есть сайт на нем можно вписать начало и конец вектора и получить угол. Но если я вписываю туда значения по кордам меньше нуля то угол как бы начинает отсчитыватся с другого места. если я считаю угол для точек 0; 44 и 28; 33 то угол ~40 а если для 0; 44 и 33; -26 то угол 51 тоесть этого впринципе не может быть. Мне нужно понять как универсально посчитать угол в любом из 4 половинок координат. Самое важное что потом по формулам надо будет перенести в программу. По этому и нужно понять почему так происходит. Если написать на сайте точки 0; 44 и 0; -44 показывает расчет по формулам 0 а по логике должно 180.

Отслеживать

задан 19 фев 2022 в 13:30

3 1 1 бронзовый знак

Пожалуйста, исправьте вопрос, чтобы он отражал конкретную проблему с достаточным количеством деталей для возможности дать адекватный ответ.

19 фев 2022 в 13:38

Формула скалярного произведения через косинус к вашим услугам.

вектор а=(5;4;3;) найти угол между вектором а и осью Ох

Выбираем вектор х (1,0,0)
скалярное произведение (a,x)=a·x·cos(ax)=корень (5·5+4·4+3·3)·1·cos(ax)=корень (50)·cos(ax)
С другой стороны: (a,x)=5·1+4·0+3·0=5
получаем: корень (50)·cos(ax)=5 => угол (ax)=arccos(5/корень (50))

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Как найти угол между осью Y+ и линией проведённой к точке на системе координат?

5ede30200c7bc568617649.jpeg

Нарисовал как смог : )

Я не могу найти решение этой задачки, вот и обращаюсь к вам.
Мне нужно найти угол Z, что на этом рисунке. Значения X и Y от -1 до 1.

  • Вопрос задан более трёх лет назад
  • 163 просмотра

Комментировать

Решения вопроса 0

Ответы на вопрос 2

ProgrammerForever

Григорий Боев @ProgrammerForever

Учитель, автоэлектрик, программист, музыкант

Тут проще всего использовать скалярное произведение. В данном случае, единичного вектора вдоль Y (единичный, т.к. потом проще считать), и радиус-вектора точки. Из готового скалярного произведения можно найти косинус угла, а из него и сам угол

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

найти угол между вектором и осями координат

введите сюда описание изображения

Полностью задача звучит так — построить плоскость по трем точкам и найти ее угол с осями координат. Для решения я строю нормаль к плоскости, нормирую ее и беру арксинус как написали в посте
Но то, что получается мало похоже на правду. Что я делаю не так?

import numpy as np import math import plotly.graph_objs as go points = [[6.5612, 5.3440, 2.4175], [1.2279, 6.1946, 4.5744], [9.1216, 9.3959, 2.6394]] p0, p1, p2 = points x0, y0, z0 = p0 x1, y1, z1 = p1 x2, y2, z2 = p2 ux, uy, uz = u = [x1-x0, y1-y0, z1-z0] vx, vy, vz = v = [x2-x0, y2-y0, z2-z0] u_cross_v = [uy*vz-uz*vy, uz*vx-ux*vz, ux*vy-uy*vx] n = np.cross(u, v) point = np.array(p0) normal = np.array(u_cross_v) nn = (points[1] + normal) d = -point.dot(normal) xx, yy = np.meshgrid(range(10), range(10)) zz = (-normal[0] * xx - normal[1] * yy - d) * 1. / normal[2] fig = go.Figure() fig.add_trace(go.Surface(z=zz, opacity=0.5)) fig.add_trace(go.Scatter3d(x=[x0, x1, x2], y=[y0, y1, y2], z=[z0, z1, z2], mode="lines", opacity=1.0)) fig.add_trace(go.Scatter3d(x=[nn[0], x1], y=[nn[1], y1], z=[nn[2], z1], mode="lines", opacity=1.0)) fig.show() nn = n / np.linalg.norm(n) angles = np.abs(np.arcsin(nn)) print("angles", angles) v=[] for i in angles: a=i * 180 / math.pi v.append(a) print("angles", v) 

Результат angles [19.08435917574169, 14.857700717809104, 65.44817677698197]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *