Кубик Рубика (Вращение и сопровождение)

Я новичок в c ++ и openGL, поэтому имейте в виду, что мои навыки кодирования не на высшем уровне, но я быстро учусь.

Итак, поскольку моя любимая головоломка — это кубик Рубика, я решил раскрыть свои творческие способности, поэтому сейчас я делаю кубик Рубика в 3D и представляю каждый кусочек кубика (26 штук без основного) по отдельности, используя четырехугольники. использовать текстуры в будущем после того, как я научусь их использовать)

Прямо сейчас я могу вращать камеру, используя glRotatef, и вижу весь куб.

Основная проблема, на которую я наткнулся, — это вращение каждой грани по отдельности, а также отслеживание кубов, чтобы определить, к каким граням они теперь принадлежат, а также определить, будут ли они затронуты, если грань повернута.

На данный момент я понял, что использование glRotatef не принесет пользы в продвижении вперед, поэтому я искал вокруг и узнал о Кватернионы поэтому я прочитал кучу учебных пособий о них, но я не знаю, как их реализовать и как их использовать.

Это последний урок, который я читал:

http://www.cprogramming.com/tutorial/3d/quaternions.html

Мой запрос будет очень простым примером того, как его реализовать и использовать в моей функции отображения.

Что касается отслеживания кубов, я сейчас думаю об использовании 6 логических значений для каждой фигуры, чтобы определить их положение через центральные фигуры.

Если у вас есть другие идеи или концепции по управлению вращением лица, пожалуйста, расскажите об этом.

С уважением,,

2

Решение

Основная проблема, на которую я наткнулся, — это вращение каждой грани по отдельности, а также отслеживание кубов, чтобы определить, к каким граням они теперь принадлежат, а также определить, будут ли они затронуты, если грань повернута.

Вот и весь ваш алгоритм. То, что вы можете сделать, это иметь структуру данных, которая содержит 6 «лиц». Эти грани являются сторонами куба. Каждое лицо будет иметь указатель на NorthFace, SouthFace, EastFace и WestFace. Также каждая грань будет содержать 3 ряда по 3 кубика столбцов. Теперь вы должны выполнить необходимую операцию, чтобы переместить лицо вверх и так далее.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]