Автор Тема: Формула перемещения стикеров  (Прочитано 738 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Isaev

  • Старожил
  • ****
  • Сообщений: 358
  • Пол: Мужской
Формула перемещения стикеров
« : 24 Июня 2018, 12:20:15 »
Допустим есть кубик рубика произвольного размера 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

  • Старожил
  • ****
  • Сообщений: 358
  • Пол: Мужской
Re: Формула перемещения стикеров
« Ответ #1 : 03 Июля 2018, 21:55:51 »
Почему этих данных не достаточно? Или что я считаю не правильно?

Оффлайн Zatamon

  • Старожил
  • ****
  • Сообщений: 264
  • Пол: Мужской
Re: Формула перемещения стикеров
« Ответ #2 : 04 Апреля 2019, 12:11:25 »
по-моему, достаточно, но давайте по порядку:
Написано не очень понятно
На входе имеем начальное положение блока A(Xa, Ya, Za), конечное положение B(Xb, Yb, Zb)
Что такое A и B? Функции? Или обозначения для конеычных состояний? Во втором случае лучше было бы написать
A = (Xa, Ya, Za)
B = (Xb, Yb, Zb)
Иначе с первых же шагов все непонятно
и углы вращения вокруг трёх осей R(Rx, Ry, Rz), на которые блок повернулся в процессе перемещения...
То есть это для каждой из трех осей суммарный угол тех поворотов, которые этот малый кубик действительно крутили? Или нет?
Как по этим трём координатам вычислить, что если белая наклейка в исходном положении была сверху, то в конечном стала спереди например?
Если так, то должно быть (и на примере видно), что тот малый кубик повернулся ровно так, как если бы его крутили только этими поворотами

Оффлайн Isaev

  • Старожил
  • ****
  • Сообщений: 358
  • Пол: Мужской
Re: Формула перемещения стикеров
« Ответ #3 : 04 Апреля 2019, 12:41:52 »
уж год почти прошёл, решил иначе
данная проблема вспоминалась недавно тут, с более подробным описанием