Другие языки программирования и технологии

Как узнать угол поворота между двумя точками?

Допустим точка E имеет координаты [0,0], A [0,10], B [9,1].
Как можно вычислить, на какой угол необходимо повернуть объект вокруг точки E, чтобы он оказался из A в точке B?
Как правильно сказал Алик, угол посчитать можно - он равен разнице арктангенсов:
alpha=|atan(y1/x1)-atan(y2/x2)|

А вот попасть из одной точки в другую таким образом может и не получиться.
Леонид Овчинников
Леонид Овчинников
68 258
Лучший ответ
Приложите транспортир..
Андрей Никитин
Андрей Никитин
53 681
Нельзя повернуть систему координат вокруг точки [0,0], чтобы попасть из [0,10] в точку [9,1]! Разные расстояния до этих точек от [0,0]. А при повороте расстояния от точки поворота СОХРАНЯЮТСЯ.
ЯЧ
Ян Чернецкий
78 472
Первый вопрос - никак нельзя. Расстояния от Е до А и В разные.
По дополнению - это нахождение угла в треугольнике по координатам вершин. Используется теорема косинусов. Готовая формула, например, тут:
http://www.kakprosto.ru/kak-36186-kak-nayti-ugol-treugolnika-po-ego-koordinatam
Можно также использовать online-калькулятор:
http://math.semestr*ru/line/analytic-geometry.php
(заменить * на .)
а объект тот ввиде точки ?
Такие глупые вопросы возникают потому что ты математику в школе не учил. А потом и появляются нытики, мол, математика не нужна и т д.
Во-первых одним поворотом относительно О твои точки совместить нельзя, нужно ещё как минимум задействовать перенос (или гомотетию и т д) . Во-вторых тебе скорее всего нужно совместить не точки, а векторы, но ты не в состоянии это сформулировать. если знать элементарные матричные преобразования вектор повернуть нетрудно, это делается с помощью матрицы поворота
посчитать угол AEB. по теореме синусов, например
Через скалярные произведения все это делается. Оно очень легко выражается через координаты, угол математики тоже определяют через скалярное произведение (а не наоборот)
Я буду скалярное произведение векторов a и b записывать как <a, b> (способов записи много, мне такой привычнее)

<a, b> = sqrt(<a, a>)* sqrt(<b, b>) * cos угла

Возведите в квадрат для удобства, тогда для вычисления cos^2 у Вас вообще останутся только операции сложения и умножения координат. А что делать дальше, пользоваться ли формулой для косинуса двойного угла или извлекать корни, решайте сами.

Если бы в задаче не было требования найти сам угол, то я бы сказал, что с косинусом работать проще, чем с самим углом.
Birzhan Alimzhanov
Birzhan Alimzhanov
19 662
По теореме Пифагора, имхо
НВ
Ник Волгин
5 605
83.66. Переведи из радиантов в градусы. В Автокаде начерти и там же измерий)))))))))))))))
Серёга Ромас
Серёга Ромас
2 118