2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение21.10.2009, 20:36 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Коротко говоря, да, это.

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение21.10.2009, 21:12 


31/08/09
183
Ну вот, если это тогда это не работает.... уже проверял
делал следующее: формулы которые полученны отдельно для каждой оси(через матрицы) реализовывал , но угол не сохраняло , т.е. можно крутить вокгруг отдельно выбранной оси, но стоит сменить ось вращения и предыдущий угол не используется...

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение21.10.2009, 21:25 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Ну зашибись. Триста лет у всех работало, теперь не работает. Давайте разбираться.
ИСН в сообщении #252996 писал(а):
Значит, так.
1. Надо всё время помнить матрицу поворота (трижды три - 9 чисел, стало быть).
2. При каждом нажатии "Повернуть вокруг чего-то" эта матрица умножается на другую матрицу, для каждой оси свою (их тут уже кто-то приводил).
3. Чтобы отобразить, грубо говоря, точку - надо вектор её координат умножить на эту матрицу. (Грубо - потому что Вы отображаете вообще не точки, а линии. Ну, это просто.)

В пункте 1 вместо "матрицу поворота" лучше было сказать "матрицу ориентации". Ладно.
Где у Вас расхождения с этой схемой?

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение21.10.2009, 21:38 


31/08/09
183
Вот впринципе пример релизованный таким образом вот
http://moc-081.narod.ru/data/3d/45.html
но без матриц , но результат тот же ....

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение21.10.2009, 21:44 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Матрица матрица матрица мать матрица матрица по голове матрица матрица матрица матрица пыль глотать матрица! Я о чём тут три страницы пишу?! О чебурашках, может быть? "Таким образом, но без матриц", my God...

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 01:32 
Заслуженный участник


26/07/09
1559
Алматы
2ИСН
Да что вы так переживаете. В явном виде выписывать формулы матрично-векторных операций вовсе не грех. Напротив, полезно для производительности (оптимизатор все-равно такие маленькие циклы наверняка раскрутил бы в линейный код, хотя я не знаю как обстоят дела с оптимизацией интерпретации js-скриптов). :) Другое дело, что можно при этом запутаться, как и произошло с mycoding'ом.

2mycoding
Повороты относительно разных осей нужно кодировать разными матрицами (у вас будет 3 матрицы). Потом вы эти матрицы должны перемножить. Результирующую матрицу можно будет применять к вашему вектору.

А ещё послушайте ИСН и реализуйте явную поддержку матриц. Думаю, это займет не более сотни строк кода, готовые формулы у вас все есть.

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 08:43 


31/08/09
183
Я непойму какую на какую матрицу надо множить чтобы другие углы не потерять, ведь нельзя в одном месте сразу три матрицы записать , не получается просто.

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 08:56 
Заслуженный участник
Аватара пользователя


06/10/08
6422
mycoding в сообщении #253812 писал(а):
Я непойму какую на какую матрицу надо множить чтобы другие углы не потерять

На все три. Последовательно.

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 09:59 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Не надо на три. Надо помнить глобальную матрицу ориентации. И при каждом повороте множить её на матрицу поворота (на одну). Вы же в каждый момент нажимаете мышкой максимум на одну кнопку? Ну вот.

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 16:56 


31/08/09
183
ИСН в сообщении #253818 писал(а):
Не надо на три. Надо помнить глобальную матрицу ориентации. И при каждом повороте множить её на матрицу поворота (на одну). Вы же в каждый момент нажимаете мышкой максимум на одну кнопку? Ну вот.

А как выглядет глобальная матрица отриентации?
В google не нашёл.

-- Чт окт 22, 2009 18:07:20 --

Просто напишите для данной ситуации что на что множить и код матриц, пожалуйста.
Вот точка, вращаем сначала относительно оси x, затем относително оси y, затем оси z.

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 17:22 
Заслуженный участник


26/07/09
1559
Алматы
2mycoding
Цитата:
Я непойму какую на какую матрицу надо множить чтобы другие углы не потерять

Когда вам нужно повернуть сцену вокруг некоторой оси, вы создаете соответствующую матрицу поворота для нужного угла и умножаете эту матрицу на, как выразился ИСН, глобальную матрицу, которая изначально единична. Таким образом вы накапливаете повороты. Вектора поворачиваются применением именно этой глобальной матрицы.

А можно поступить немного по-другому и накапливать повороты вокруг осей (в виде чисел, а не матриц). При рендеринге вы по этим углам строите три матрицы поворота, и, как и говорил Xaositect, последовательно применяете их к векторам (последовательное применение эквивалентно применению их матричного произведения).

Цитата:
Просто напишите для данной ситуации что на что множить и код матриц, пожалуйста.

См. начало темы.

P.S.: Бывает полезно выписать формулы сначала на обычной бумажке и все обдумать, вплоть до просветления. Может быть я слишком старомоден, но бумажки иногда помогают. :)

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 17:24 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Dude, where's my matrix? :lol: :twisted:

-- Чт, 2009-10-22, 18:26 --

Circiter в первом абзаце говорит всё правильно. Дальше ("А можно поступить немного по-другому...") не читайте. Нельзя по-другому.
Circiter, какое нафиг накопление поворотов вокруг осей? Повороты ведь не коммутируют, если чо.

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 17:50 
Заслуженный участник


26/07/09
1559
Алматы
2ИСН
Цитата:
какое нафиг накопление поворотов вокруг осей? Повороты ведь не коммутируют, если чо

Еще как коммутируют! Если трансляции не существует. :) Не, ну действительно, углы аддитивны -- повернули на тридцать градусов, потом на сорок, в результате получился поворот на семьдесят; он же получится если сначала повернуть на сорок, и только потом на тридцать.

Если добавить трансляцию, тогда, да. Сдвинуть на единицу и повернуть на пи не есть повернуть на пи и сдвинуть на единицу. В общем случае слово накапливать нужно как минимум в кавычки брать. :) Но это mycoding и так понимает (надеюсь)!

Цитата:
Нельзя по-другому.

Кватернионы!

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 17:55 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
У нас, на минуточку, трёхмерное пространство уже.
А про кватернионы даже не начинайте. Я уже вон сколько не могу убедить клиента матрицы имплементировать. А их ведь во всех вузах проходят, в отличие от.

 Профиль  
                  
 
 Re: Приглашаю помочь и заняться интересным 2d 3d web построение
Сообщение22.10.2009, 18:04 


31/08/09
183
Circiter в сообщении #253890 писал(а):


P.S.: Бывает полезно выписать формулы сначала на обычной бумажке и все обдумать, вплоть до просветления. Может быть я слишком старомоден, но бумажки иногда помогают. :)

Я всю переписку распичатал и уже не первый день перечитываю...
Так что надо сделать все три матрицы перемножить тогда получится вот это Изображение
Но здесь нет самого вектора, и что потом с этим всё равно делать?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 91 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group