Вращение модели в 3d в Луа - PullRequest
0 голосов
/ 05 июля 2018

У меня есть эта уродливая модель додекаэдра, которую мне нужно вращать (жить) на каждой оси:

local phi = 1.618
local b = 1 / phi
local c = 2 - phi
  self.polys = {
    {{ c,  0,  1},   {-c,  0,  1},   {-b,  b,  b},   { 0,  1,  c},   { b,  b,  b}},
    {{-c,  0,  1},   { c,  0,  1},   { b, -b,  b},   { 0, -1,  c},   {-b, -b,  b}},
    {{ c,  0, -1},   {-c,  0, -1},   {-b, -b, -b},   { 0, -1, -c},   { b, -b, -b}},
    {{-c,  0, -1},   { c,  0, -1},   { b,  b, -b},   { 0,  1, -c},   {-b,  b, -b}},
    {{ 0,  1, -c},   { 0,  1,  c},   { b,  b,  b},   { 1,  c,  0},   { b,  b, -b}},
    {{ 0,  1,  c},   { 0,  1, -c},   {-b,  b, -b},   {-1,  c,  0},   {-b,  b,  b}},
    {{ 0, -1, -c},   { 0, -1,  c},   {-b, -b,  b},   {-1, -c,  0},   {-b, -b, -b}},
    {{ 0, -1,  c},   { 0, -1, -c},   { b, -b, -b},   { 1, -c,  0},   { b, -b,  b}},
    {{ 1,  c,  0},   { 1, -c,  0},   { b, -b,  b},   { c,  0,  1},   { b,  b,  b}},
    {{ 1, -c,  0},   { 1,  c,  0},   { b,  b, -b},   { c,  0, -1},   { b, -b, -b}},
    {{-1,  c,  0},   {-1, -c,  0},   {-b, -b, -b},   {-c,  0, -1},   {-b,  b, -b}},
    {{-1, -c,  0},   {-1,  c,  0},   {-b,  b,  b},   {-c,  0,  1},   {-b, -b,  b}}
  }

Основная проблема, с которой я столкнулся, заключается в том, что я абсолютно не представляю, что я делаю.

1 Ответ

0 голосов
/ 06 июля 2018

Это короткий вопрос для потенциально длинной темы. Я бы посоветовал вам начать с здесь , чтобы получить представление о математике вращения 3D.

Если вы действительно заинтересованы, я бы посмотрел ссылку «3D ebook» на этом сайте. Книга предназначена для пользователей Codea , среды программирования Lua для iPad. Первый важный пример, к которому это приводит, - вращение трехмерного куба. Обратите внимание, что код не полностью переносим в другие среды Lua, так как он опирается на некоторые встроенные функции Codea. Тем не менее, это очень просто введение в 3D концепции в целом, и в качестве плюса, он использует Lua. И Кода, кстати, великолепен.

Если вы ищете кого-то, кто просто закодирует его для вас, это может быть не то место. Лучше изучать концепции и приходить в СЦ, когда вы застряли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...