0 голосов
 
1041 просмотр
8.02.2019 / 18:25  Кальцид

Поворот линии

Есть линия с координатам x1 y1 начало x2 y2 конец . Как ее повернуть на определеный угол в градусах относительно ее начала т.е. х1 у1 и относительно любой другой точке . Например 100 100
8.02.2019 / 21:46  aNNiMON
При помощи матрицы преобразований. Вот тут наглядно с кодом на джаваскрипте https://annimon.com/article/2808
Ответы
 
4 голоса
 
# 8.02.2019 / 20:04  vlavolk
Вот тут формулы с объяснением. Есть калькулятор

http://www.abakbot.ru/online-2/91-rotate

А вот готовые формулы
переменные:
угол A = 90°
точка начала x1, y1 = (7:-5)
точка конца x2, y2 = (4:2)
Большинство ЯП вычисляет функции cos и sin от угла в радианах, потому переводим в радианы:

Теперь посчитаем новые координаты точки - смещаем центр линии к точке (0:0), пересчитываем координаты точки (x2:y2) и прибавляем к ним начало:


Поворот против часовой стрелки. Для поворота по часовой угол берем с отрицательным значением

https://annimon.com/qa/a629/IMG_20190208_200311.jpg

Так же можно вращать, зная радиус.


А для упрощения расчета можно уйти от перевода градусов в радианы и сразу пользоваться радианами:

rad - один радиан
в данном случае угол увеличивается на 30°
Изм. aNNiMON от 8.02.2019 / 21:33

IMG_20190208_200311.jpg (36.42 кб.)
9.02.2019 / 11:44  Death
А мне подробно никто так не отвечал
Всего: 1

Реклама

Мы в соцсетях

tw tg yt gt