Russian Qt Forum
Ноябрь 22, 2024, 12:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Расчёт bounding box для QGLSceneNode  (Прочитано 6200 раз)
spirits25
Гость
« : Апрель 16, 2013, 12:56 »

Всем доброго времени суток.

Есть 3D сфера, которая является объектом QGLSceneNode. Мне необходимо посчитать какая часть этой сферы видна, то есть не обрезается ни границами экрана, ни скрыты за передней часть сферы. То есть то, что действительно видит пользователь.

У QGLSceneNode есть метод boundingBox, но для сферы он выдаёт постоянно одно и то же значение, даже если границы экрана обрезают большую часть:
Код:
QBox3D((-0.5, -0.496453, -0.5) - (0.5, 0.496453, 0.5))
Как я понял он выдаёт лишь видимую часть сферы относительно самой сферы (видимая пользователю часть), но она не меняется при вращении сферы.

В доках прочитал:
Цитировать
Returns a bounding box for the portion of the geometry referenced by this scene node

Может кто знает как узнать видимую пользователем часть QGLSceneNode стандартными средствами Qt?
Спасибо.
« Последнее редактирование: Апрель 18, 2013, 12:22 от spirits25 » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Апрель 17, 2013, 11:19 »

Ф-ции не знаю, по-народному переводить вертексы в координаты экрана и там отсекаться. Ну ладно, не буду лезть с "многочисленными советами"  Улыбающийся
Записан
spirits25
Гость
« Ответ #2 : Апрель 17, 2013, 11:53 »

Ф-ции не знаю, по-народному переводить вертексы в координаты экрана и там отсекаться. Ну ладно, не буду лезть с "многочисленными советами"  Улыбающийся

Благодаря этим многочисленным советам, я порой начинаю понимать что и как делать=)
Записан
spirits25
Гость
« Ответ #3 : Апрель 17, 2013, 11:56 »

Ф-ции не знаю, по-народному переводить вертексы в координаты экрана и там отсекаться. Ну ладно, не буду лезть с "многочисленными советами"  Улыбающийся

Я вот только не знаю, как мне узнать, какие вертексы видны, а какие скрыты. и как их перевести в координаты экрана тоже пока не понятно, хотя не думал об этом.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Апрель 17, 2013, 14:15 »

Ищите где-то около gluProject, должно быть.
Записан
spirits25
Гость
« Ответ #5 : Апрель 18, 2013, 12:17 »

Ищите где-то около gluProject, должно быть.

Немного не по заданной теме, но решение я нашёл.

Решил следующим образом - я могу посчитать сколько километров в одной пикселе или в одном тайле (в тайле 256 пикселей). Зная своё расстояние от центра я могу посчитать сколько это тайлов=)
« Последнее редактирование: Апрель 18, 2013, 12:23 от spirits25 » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Апрель 18, 2013, 16:50 »

Немного не по заданной теме, но решение я нашёл.

Решил следующим образом - я могу посчитать сколько километров в одной пикселе или в одном тайле (в тайле 256 пикселей). Зная своё расстояние от центра я могу посчитать сколько это тайлов=)
Для перспективного изображения пиксели имеют "разный размер". Напр далеко стоящая точка охватывает гораздо большее расстояние
Записан
spirits25
Гость
« Ответ #7 : Апрель 19, 2013, 10:50 »

Для перспективного изображения пиксели имеют "разный размер". Напр далеко стоящая точка охватывает гораздо большее расстояние
Полностью согласен, но на больших "зумах" эта разница быстро уменьшается. Даже при четвёртом увеличении http://tile.openstreetmap.org/4/8/7.png это уже не так критически сказывается=)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.113 секунд. Запросов: 23.