![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите ламеру с DelphiX
Bizon's © (2004-06-11 14:56:00)Разбираюсь с DelphiX ми у меня возникла задача:
Есть 3Д кубик
Когда кликаешь мишкой нужно определить на какую грань попал
Как это можно реализовать?
Sapersky (2004-06-14 12:13:00) [1]Если используется DelphiX, т.е. Direct3DRM, то можно использовать встроенные в него средства проверки попаданий (Frame.RayPick/GetPick/GetElement). Но, судя по тем примерам что у меня сохранились, нужно будет для каждой грани куба использовать отдельный фрейм - не очень-то удобно.
Можно повозиться с геометрией. Например, вручную трансформировать видимые грани куба и проверять попадание "мишки" в экранных координатах (т.е. попадание точки в четырёхугольник). Не совсем оптимально, правда - D3D трансформирует, потом мы ещё раз... но для куба сойдёт.
Или наоборот, получать вектора положения/направления курсора в пространстве и проверять на их на пересечение с трёхмерными гранями, что, собственно, и делает RayPick.
Реализуешь это - тогда обзывай Краснова как хочешь. А пока - не стоит :)
Bizon's (2004-06-13 11:55:00) [2]Как я помню там тупо.
Красились предметы в разный цвет и определяли на какой цвет кликнули. Нету ли другого способа.
papa_jen (2004-06-12 08:36:00) [3]это уже Direct3D используеться. именно такой пример расмотрен в книге Краснова - ДиректИКС в проектах делфи.