ppxy
@ppxy

Как реализовать данное вращение?

Добрый день.
Подскажите, реализация данного движения (см. рисунок):
1) Вращение точки А против часовой стрелки.Начало коортинат (0, 0)
2) Вращение точки B против часовой стрелки. Точка A явсляется началом координат.

Пытался реализовать данное вращение с помощью матриц. Все хорошо только до тех пор, пока точка находится в покое. Делал по формуле T^-1 R T. (смещаемся в 0, вращаемся, возвращаемся). Когда точка A начинает вращение, в данной реализации наблюдается явно не то что должно быть. Хотя я не уверен. Потому что не могу математически обосновать, какое движение будет в результате данных трансформаций.
Вопрос в следующем. Правильно ли я начал делать? (с смещение, вращение, возвращение)
Или же это более сложная задача из области механики?
a85d7a19e71a4ddfa2a530db6690b69c.png
Есть "реализация на js"
  • Вопрос задан
  • 2308 просмотров
Пригласить эксперта
Ответы на вопрос 4
BOOMER_74
@BOOMER_74
Full-Stack разработчик
Воспользуйтесь oCanvas. Пример с главной страницы очень похож на вашу задачу.
Ответ написан
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Да вроде несложная — вращение вокруг центра, чьи координаты движутся по круговой орбите.
Если делать матрицами, то вроде как умножать нужно в порядке смещение-вращение.

А если реализовывать подручными средствами, то я предпочту двигать систему координат jsfiddle.net/4e4xtLng/1
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Пусть Ra и Rb - матрицы поворота точки A относительно O и B относительно A. С - произвольная точка объекта, движение которого задаётся точками A и B. Тогда поворот точки С будет выглядеть так:
С' = Ra×A+Rb×(С-A)
Соответственно, движение точки A:
A' = Ra×A
Движение точки B:
B' = Ra×A+Rb×(B-A)
Ответ написан
Комментировать
ukrainoid
@ukrainoid
get_image_small.jpg
Можете сравнить с реализацией программного вращения из статьи ukrainoid.com/688x
возможно будет полезнім
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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