![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
GolIy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
привет.
opengl 3d. строю различные объекты с помощью функции glVertex3d. Для задания объекта я задаю координаты вершин, и объект строится связывая все заданные вершины. Вопрос такой - есть ли возможность узнать z-координату объекта зная x,y ? т.е. координаты вершин то я знаю, я же их задал для посторения, но мне нужно теперь узнать z координату например в центре, если смотреть сверху. Понятно что объекты могут быть разные, и одна часть может сверху налаживатся другой, тем самым для одних x, y может быть несколько z. но я строю объекты такие что у мя всегда для одних x,y будет только одна z координата. вот только как её узнать.. |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Не понял сути проблемы. У вас есть список x,y,z координат вершин: в чём проблема пройти по ним и найти необходимую?
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 2 Всего: 17 |
Ему нужно узнать z координату любой точки полигона, построенного по заданным вершинами. Вариант в лоб - связка gluUnProject и glReadPixels с параметром GL_DEPTH_COMPONENT. Другой вариант - строить пересечение прямой, проходящей через {x, y}, с плоскостями (или еще чем-то, что может быть описано формулами) из которых состоит геометрия. Способ относительно прост, когда геометрия примитивна и ее мало. В противном случае выбрать подходящие под данные нужды фреймворки или физ. движки. |
|||
|
||||
HackOn |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 13.9.2009 Где: Aqtau Репутация: нет Всего: нет |
Пересчитывать z координату по несколько раз в секунду не есть хорошо для производительности.
Если Вам нужно часто узнавать z координату объекта, и вы ей никак не оперируете, то лучше просто "запомнить" ее или записывать в массив. Но для более-менее больших проектов, это, конечно же, не вариант. У меня был случай, в программе я смотрел на 3D карту сверху, но чуть под наклоном. Искажение было невелико и я вообще не использовал Z координату, только x и y. Например, при выборе объектов. Работало. |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |