Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как плоскость в 3D преобразовать в 2D? 
:(
    Опции темы
Elfebet
Дата 28.3.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: нет
Всего: 14



есть полигон лежащий в объеме и я знаю что  этот полигон плоский, как мне преобразовать эту плоскоть в координаты x, y. т.е. мне надо точки полигона 3D (x, y, z) преобразовать в точки (x, y). и потом востановить обратно.
 smile 

зы. это я хочу сделать для триангуляции полигона.


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
skyboy
Дата 28.3.2007, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



ну, коль полигон реально плоский - по трем любым его точкам(главное, чтоб все три точки не лежали на одной прямой) определяем плоскость(коэффициенты). по этим коэффициентам делаем аффинное преобразование "поворот" и получаем полигон на плоскости x0y. обратно - делаем поворот с теми же значениями коэффициентов, но с противоположным знаком.

Добавлено через 4 минуты и 30 секунд
по аффиным преобразованиям
матрицы транфсормации для частных случаев аффинного преобразования
правда, комментарии на английском, а примеры - для двумерного пространства(на бумаге трехмерную матрицу не отобразишь :(), но, думаю, по формулам хотя бы поймешь: что к чему.
вообще, можно и не уходить в сторону обработки матриц, но, если у тебя сложный полигон с координатами, хранящимися в матрице, то для обработки лучше использовать уже готовый алгоритм поворота, чем писать свою функцию smile

Добавлено через 5 минут и 42 секунды
зы Вообще, при использовании аффинных преобразований размерность матриц не меняется: технически, твой полигон после поворота/переноса будет трехмерным, просто у него z-координата будет == 0.
PM MAIL   Вверх
Elfebet
Дата 28.3.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: нет
Всего: 14



что-то я не понял про аффинные преобразования? оно к чему здесь?

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


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
skyboy
Дата 28.3.2007, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



афинные преобразования - алгоритм, который позволяет проивзодить преобразования координат(поворот вокруг точки, перенос, отображение, преобразования подобия - масштабирование) "пакетно" - в виде операций над матрицами, что есть "самое оно" в случае, если реализовать это надо не на бумаге, а на компьютере. И координаты уже и так загнаны в массив.
PM MAIL   Вверх
DENNN
Дата 28.3.2007, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Именно. Требуемая операция называется "проецирование на плоскость". Если проецирование ортогональное (параллельными прямыми) и поверхность, на которую выполняется проецирование, параллельна одной из координатных плоскостей, то "лишнюю" координату можно просто отбросить.
PM ICQ   Вверх
SoWa
Дата 29.3.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Да, я бы тоже отбросил Z, но в задаче надо восстановить. Поэтому надо использовать поворот/сдвиг полигона.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Wolf1994
Дата 29.3.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



Может, пригодится: http://www.wolf-ware.ru/software/id/8/
PM MAIL WWW   Вверх
Elfebet
Дата 30.3.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: нет
Всего: 14



Всем спасибо, теперь понял. вот нашел замечательную литературу там у все реализовано
http://www.prografix.narod.ru/rus_geom.html
http://www.prografix.narod.ru/rus_trans.html


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
DENNN
Дата 30.3.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Цитата(SoWa @  29.3.2007,  15:52 Найти цитируемый пост)
Да, я бы тоже отбросил Z, но в задаче надо восстановить. Поэтому надо использовать поворот/сдвиг полигона. 

Не надо никуда ничего поворачивать. Вводим СК в плоскости этого полигона, триангулируем, а потом пересчитываем назад в коорджинаты 3D сцены.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.