HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Подскажите, как построить линию пересечения двух плоскостей
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
anna
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



Question Подскажите, как построить линию пересечения двух плоскостей

Плоскости определены матрицей точек имеющих координаты x,y,z. Ни одна из точек не лежит на границе между плоскостями.
Нормали к плоскостям и направляющий вектор отрезка, определяющий границу пересечения плоскостей, я нахожу. Подскажите как можно вычислить начальную и конечную точки отрезка.

Сообщить модератору | | IP: Записан
Сообщение: 39569

Старое сообщение 22-11-2008 12:29
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Пересечение плоскостей - это прямая линия, а не отрезок, у нее нет начала и конца. Какой именно отрезок требуется построить?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 39572

Старое сообщение 22-11-2008 13:10
-
anna
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



Плоскости представляют собой стороны куба, тогда отрезок это его грань.

Сообщить модератору | | IP: Записан
Сообщение: 39573

Старое сообщение 22-11-2008 15:57
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Дык в таком случае нужно просто взять общие вершины и все...

Сообщить модератору | | IP: Записан
Сообщение: 39574

Старое сообщение 22-11-2008 16:08
- За что?
anna
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



Дак общих вершин у них нету, мне их и нужно получить

Сообщить модератору | | IP: Записан
Сообщение: 39575

Старое сообщение 22-11-2008 16:10
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Из двух плоскостей ты координаты вершин не получишь. Тебе в таком случае надо искать точки пересечения трех плоскостей - гугл поможет тебе это сделать.

Сообщить модератору | | IP: Записан
Сообщение: 39576

Старое сообщение 22-11-2008 16:15
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Я все же не совсем понимаю, что именно нужно построить.
Можешь чертеж нарисовать?

Добавлено 22-11-2008 в 22:34:

Как вариант - можешь спроецировать все имеющиеся точки на прямую пересечения плоскостей и взять граничные точки.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 39577

Старое сообщение 22-11-2008 16:34
-
anna
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



Рисунок очень упрощенно. Задача такова, на первом этапе у маня есть множество точек. (для простоты пусть эти точки принадлежат двум плоскостям) С помощью алгоритма я определяю к какой плоскости принадлежит каждая точка, строю контур (красным).
Затем мне надо вычислить точки границы их пересечения. С этим и загвоздка.

[ Вложение ]
1.jpg

Сообщить модератору | | IP: Записан
Сообщение: 39578

Старое сообщение 22-11-2008 17:00
- За что?
anna
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



есть предположение, что брать можно точки 1-2 (рис. 2) и 3-4 и находить их точку пересечения. Но тогда вопрос как определить крайние точки?

[ Вложение ]
1.jpg

Сообщить модератору | | IP: Записан
Сообщение: 39581

Старое сообщение 22-11-2008 17:31
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Я же говорю - спроецируй ВСЕ точки на прямую пересечения, поверни эту прямую так, чтобы она была параллельна, скажем, оси абсцисс, и уже на ней определи крайние - это точки с минимальным и максимальным значением координаты Х.
Можно иначе - взять какую-нибудь очень удаленную точку на этой прямой и определить расстояния от нее до всех спроецированных точек, а потом взять точки с мин. и макс. расстоянием.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 39582

Старое сообщение 22-11-2008 18:24
-
anna
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



Еще один момент, никак не могу сообразить, если у меня несколько плоскостей (рис. 3) как определить соседние?

[ Вложение ]
3.jpg

Сообщить модератору | | IP: Записан
Сообщение: 39583

Старое сообщение 22-11-2008 18:59
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


anna что значит "соседние"? На рисунке - не плоскости, а фрагменты плоскостей, между прочим.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 39587

Старое сообщение 22-11-2008 19:49
-
anna
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



Чем отличаются плоскости от фрагментов плоскостей?

Цитата:
XaeroX писал:
что значит "соседние"?


"соседние" означает смежные.

И еще, в OpenGL я рисую залитые полигоны, при повороте выходит, что я вижу объекты, которые на заднем плане. Почему так происходит?

Сообщить модератору | | IP: Записан
Сообщение: 39589

Старое сообщение 22-11-2008 20:13
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
anna писал:
Чем отличаются плоскости от фрагментов плоскостей?

Тем, что плоскости бесконечны.
Цитата:
anna писал:
"соседние" означает смежные.

Все непараллельные плоскости - в той или иной степени смежные
Цитата:
anna писал:
я рисую залитые полигоны, при повороте выходит, что я вижу объекты, которые на заднем плане. Почему так происходит?

Видимо, включен режим GL_CULL_FACE.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 39590

Старое сообщение 22-11-2008 21:49
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 22:29. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Подскажите, как построить линию пересечения двух плоскостей
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024