|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.06.2010, 20:51 | #1 | |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
Как реолизовать построение отрезка в 3D пространстве, как в SketchUp?
Делаю 3D редактор. Столкнулся с проблемой рисования фигур мышью(например отрезка).
Сделал процедуру нахождения пространственных координат. Находил с помощью неё точки и по ним строил отрезок. Но отрезок строился вообще не в том месте, где предполагалось! Нахождение пространственных координат вычитал в книжке "OpenGL грвфика в проектах Delphi". Кто-нибудь ,кроме этого способа нахождения пространственных координат, знает другой?Если знаете - подскажите! Хотелось чтоб построение ,ну например отрезка ,было как в SketchUp! Процедура нахождения пространственных координат Цитата:
|
|
19.06.2010, 11:03 | #2 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Я делал не совсем так. Поочерёдно выбирал нужные плоскости и считал пересечения с ними (всмысле, образованные осями координат или сдвинутой СК), запоминал точки пересечения и без всяких извратов рисовал прямо в пространстве... Этот способ, правда, подойдёт только для простых случаев, когда рисовать надо не на других объектах. В противном случае способ нужно будет модифицировать, добавив получение нормали к плоскости полигона и его положения (это уже вашим способом + проверка изменения глубины под мышью при отрисовке).
Что касается ошибки в вашем коде, меня смущает эта строка: Код:
А ещё проверьте соответствие типов в параметрах последних двух функций, хитрые они...
Изобретатель велосипедов
|
19.06.2010, 20:19 | #3 |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
А как проверить?
|
19.06.2010, 21:58 | #4 |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
Вау! Я нашел решение!Странно, но если находить пространственные координаты в процедуре рисования (FormPaint) координаты по x и z находятся правильно, а по y не находятся! Правда это не совсем решение, но строить линии на осях x и z я могу!
Хотел начать писать по нормальному, но опять придётся писать через одно место! |
19.06.2010, 22:48 | #5 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Ах да, проверьте, не вызываете ли вы эту ф-ию внутри блока glBegin ... glEnd. Такого делать нельзя
Изобретатель велосипедов
|
20.06.2010, 13:51 | #6 |
Пользователь
Регистрация: 04.06.2010
Сообщений: 18
|
Нет не вызываю.
|
23.06.2010, 19:55 | #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 |