![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
![]()
Делаю 3D редактор. Столкнулся с проблемой рисования фигур мышью(например отрезка).
Сделал процедуру нахождения пространственных координат. Находил с помощью неё точки и по ним строил отрезок. Но отрезок строился вообще не в том месте, где предполагалось! Нахождение пространственных координат вычитал в книжке "OpenGL грвфика в проектах Delphi". Кто-нибудь ,кроме этого способа нахождения пространственных координат, знает другой?Если знаете - подскажите! Хотелось чтоб построение ,ну например отрезка ,было как в SketchUp! ![]() Процедура нахождения пространственных координат Цитата:
|
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Я делал не совсем так. Поочерёдно выбирал нужные плоскости и считал пересечения с ними (всмысле, образованные осями координат или сдвинутой СК), запоминал точки пересечения и без всяких извратов рисовал прямо в пространстве... Этот способ, правда, подойдёт только для простых случаев, когда рисовать надо не на других объектах. В противном случае способ нужно будет модифицировать, добавив получение нормали к плоскости полигона и его положения (это уже вашим способом + проверка изменения глубины под мышью при отрисовке).
Что касается ошибки в вашем коде, меня смущает эта строка: Код:
А ещё проверьте соответствие типов в параметрах последних двух функций, хитрые они...
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
![]()
А как проверить?
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
![]()
Вау! Я нашел решение!Странно, но если находить пространственные координаты в процедуре рисования (FormPaint) координаты по x и z находятся правильно, а по y не находятся! Правда это не совсем решение, но строить линии на осях x и z я могу!
![]() Хотел начать писать по нормальному, но опять придётся писать через одно место! ![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Ах да, проверьте, не вызываете ли вы эту ф-ию внутри блока glBegin ... glEnd. Такого делать нельзя
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
![]()
Нет не вызываю.
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
![]()
Спасибо за помощь!
![]() Нашел решение проблемы! ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Точка в трехменом пространстве( | Дима я | Общие вопросы Delphi | 3 | 11.05.2010 10:12 |
построение диаграммы в пространстве (эксель) | alex(21) | Помощь студентам | 0 | 28.12.2009 17:50 |
Обнаружение картинки в пространстве | Altera | Свободное общение | 7 | 21.02.2009 20:25 |
Звук в пространстве. | Манжосов Денис :) | Помощь студентам | 1 | 02.06.2008 22:39 |
Прямая в пространстве | Neuros1s | Общие вопросы Delphi | 12 | 29.06.2007 00:06 |