Общая категория > Общие вопросы

Формула перемещения стикеров

(1/1)

Isaev:
Допустим есть кубик рубика произвольного размера NxNxN.

На входе имеем начальное положение блока A(Xa, Ya, Za), конечное положение B(Xb, Yb, Zb) и углы вращения вокруг трёх осей R(Rx, Ry, Rz), на которые блок повернулся в процессе перемещения... Траектория перемещения может быть очень запутанной и нам не интересна. Эти входные данные абсолютно однозначно определяют конечное состояние одного из блоков (положение и разворот). Пытаюсь вывести алгоритм который по входным данным возвратит куда переместилась наклейка на данном блоке.

Рассмотрим пример по картинке:



Цифрой 1 обозначим начальное положение блока A(0,2,2).
Цифрой 2 - конечное положение блока B(2,2,0).
Для лучшего понимания можно добавить что второе положение из первого в данном случае мы получили прокрутив: (R U R')
Потому имеем повороты вокруг трёх осей R(-90,90,0) (т.е. при повороте R блок 1 не менял положения, при U повернулся вокруг Y по часовой, при R' - вокруг X против часовой).

Как по этим трём координатам вычислить, что если белая наклейка в исходном положении была сверху, то в конечном стала спереди например?

Isaev:
Почему этих данных не достаточно? Или что я считаю не правильно?

Zatamon:
по-моему, достаточно, но давайте по порядку:
Написано не очень понятно

--- Цитата: Isaev от 24 Июня 2018, 12:20:15 ---На входе имеем начальное положение блока A(Xa, Ya, Za), конечное положение B(Xb, Yb, Zb)

--- Конец цитаты ---
Что такое A и B? Функции? Или обозначения для конеычных состояний? Во втором случае лучше было бы написать
A = (Xa, Ya, Za)
B = (Xb, Yb, Zb)
Иначе с первых же шагов все непонятно

--- Цитата: Isaev от 24 Июня 2018, 12:20:15 ---и углы вращения вокруг трёх осей R(Rx, Ry, Rz), на которые блок повернулся в процессе перемещения...

--- Конец цитаты ---
То есть это для каждой из трех осей суммарный угол тех поворотов, которые этот малый кубик действительно крутили? Или нет?

--- Цитата: Isaev от 24 Июня 2018, 12:20:15 ---Как по этим трём координатам вычислить, что если белая наклейка в исходном положении была сверху, то в конечном стала спереди например?

--- Конец цитаты ---
Если так, то должно быть (и на примере видно), что тот малый кубик повернулся ровно так, как если бы его крутили только этими поворотами

Isaev:
уж год почти прошёл, решил иначе
данная проблема вспоминалась недавно тут, с более подробным описанием

Навигация

[0] Главная страница сообщений

Перейти к полной версии