![]() |
|
|
![]()
|
|
| Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: нет Всего: 14 |
есть полигон лежащий в объеме и я знаю что этот полигон плоский, как мне преобразовать эту плоскоть в координаты x, y. т.е. мне надо точки полигона 3D (x, y, z) преобразовать в точки (x, y). и потом востановить обратно.
зы. это я хочу сделать для триангуляции полигона. -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
ну, коль полигон реально плоский - по трем любым его точкам(главное, чтоб все три точки не лежали на одной прямой) определяем плоскость(коэффициенты). по этим коэффициентам делаем аффинное преобразование "поворот" и получаем полигон на плоскости x0y. обратно - делаем поворот с теми же значениями коэффициентов, но с противоположным знаком.
Добавлено через 4 минуты и 30 секунд по аффиным преобразованиям матрицы транфсормации для частных случаев аффинного преобразования правда, комментарии на английском, а примеры - для двумерного пространства(на бумаге трехмерную матрицу не отобразишь :(), но, думаю, по формулам хотя бы поймешь: что к чему. вообще, можно и не уходить в сторону обработки матриц, но, если у тебя сложный полигон с координатами, хранящимися в матрице, то для обработки лучше использовать уже готовый алгоритм поворота, чем писать свою функцию Добавлено через 5 минут и 42 секунды зы Вообще, при использовании аффинных преобразований размерность матриц не меняется: технически, твой полигон после поворота/переноса будет трехмерным, просто у него z-координата будет == 0. |
|||
|
||||
| Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: нет Всего: 14 |
что-то я не понял про аффинные преобразования? оно к чему здесь?
плиз може кто-то по подробней напишет как это сделать, а то я в этих делах новенький и в инете поискал литературу и чего-то не вьехал как это делается? -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
афинные преобразования - алгоритм, который позволяет проивзодить преобразования координат(поворот вокруг точки, перенос, отображение, преобразования подобия - масштабирование) "пакетно" - в виде операций над матрицами, что есть "самое оно" в случае, если реализовать это надо не на бумаге, а на компьютере. И координаты уже и так загнаны в массив.
|
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Именно. Требуемая операция называется "проецирование на плоскость". Если проецирование ортогональное (параллельными прямыми) и поверхность, на которую выполняется проецирование, параллельна одной из координатных плоскостей, то "лишнюю" координату можно просто отбросить.
|
|||
|
||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Да, я бы тоже отбросил Z, но в задаче надо восстановить. Поэтому надо использовать поворот/сдвиг полигона.
-------------------- Всем добра |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: нет Всего: 29 |
Может, пригодится: http://www.wolf-ware.ru/software/id/8/
|
|||
|
||||
| Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: нет Всего: 14 |
Всем спасибо, теперь понял. вот нашел замечательную литературу там у все реализовано
http://www.prografix.narod.ru/rus_geom.html http://www.prografix.narod.ru/rus_trans.html -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
||||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |