Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Развертка объемного изображения, Как? 
:(
    Опции темы
Alexei
Дата 11.11.2004, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 20.8.2003

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



Есть изображение 3д, в каком-нибудь 3д Максе, как получить его развертку?
PM MAIL   Вверх
Tatarin
Дата 11.11.2004, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



что значит развертку? проекции знаю, развертка - не знаю...
PM MAIL   Вверх
val
Дата 11.11.2004, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


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

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



Цитата
что значит развертку? проекции знаю, развертка - не знаю...

Развёртку я понимаю, как проецирование трёхмерного объекта на горизонтальные и вертикальные плоскости. В начерталке это называется тройным сечением или что-то типа этого...
Добавлено @ 10:43
А вообще, отталкиваться надо от простого - проецирования отрезка в 2-ух мерной плости в декартовой системе координат, например, на ось Х.
Тобишь спроецированная длина будет X*cos(alpha), где alpha- угол наклона прямой к оси Х...
Ну дальшее обобщаем на N-мерное простанство... smile


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
Girder
Дата 11.11.2004, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


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

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



для ентого тебе для начала надо сделать триангуляцию поверхности и от нею разбить все тело, после чего и разварачивать


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
val
Дата 11.11.2004, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


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

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



Цитата
триангуляцию


А что это значит?


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
maxim1000
Дата 11.11.2004, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 33
Всего: 110



все-таки неплохо было бы знать, что автор понимает под разверткой объекта (хотя бы на примере)
Цитата(val @ 11.11.2004, 17:25)
А что это значит?

насколько я знаю, приближение поверхности набором треугольников (это - как аппроксимация кривой с помощью ломаной)


--------------------
qqq
PM WWW   Вверх
Girder
Дата 11.11.2004, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


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

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



Цитата(val @ 11.11.2004, 18:25)
А что это значит?
Понимаеш... для начала ему надо разьбить граничную поверхность на полигоны. Самым простой полигон - енто трейгольник. Т.в. => Процесс разбиения в набор треугольников называется триангуляцией... smile

Цитата(maxim1000 @ 11.11.2004, 19:03)
все-таки неплохо было бы знать, что автор понимает под разверткой объекта
Автор уже писал... но только данный топик удалили... хотя сказано было абсолютно верно... smile Попробую не так грубо: Возьми какую нить бумажную упаковку - т.в. енто 3D тело, а теперь разверни её в лист - т.в. енто называется разверткой... smile



--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Alexei
Дата 12.11.2004, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 20.8.2003

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



Глобус, например,если его распороть по шву .
Никто не заругает? smile
PM MAIL   Вверх
maxim1000
Дата 12.11.2004, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 33
Всего: 110



как я понял, на 3D-объекте есть какой-то рисунок, который и является основной целью всего этого...
тогда можно что-нибудь вроде этого:
1. вписываем объекта в цилиндр (как его выбирать - это еще вопрос)
2. каждую точку объекта проектируем вдоль радиуса на поверхность цилиндра


--------------------
qqq
PM WWW   Вверх
Mad
Дата 12.11.2004, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

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



Общий алгоритм можно представить так:

1 Выбераем грань.
2 поворачиваем обьект так, чтоб выбраная грань была паралельна плоскости проекции
3 проецируем грань на плоскость.
4 выбераем ребро на спроецированной грани.
5 вращаем обьект, относительно выбранного рера, так чтоб смежная грань стала паралельной плоскости проекции
6 проецирум грань.
7 повторяем 4 пока не будут спроецированны все грани.

т.е какбы перекатываем обьект поплоскости smile


--------------------
user posted image
PM MAIL   Вверх
skyboy
Дата 25.9.2009, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



некрррропостеееер!!!
Цитата(Mad @  12.11.2004,  11:05 Найти цитируемый пост)
4 выбераем ребро на спроецированной грани.

интересно, существуют ли алгоритмы выбора ребра, для, скажем, минимизации площади развертки. так чтоб без реализации полного перебора.
кроме того, у алгоритма есть...хм, недостаток: развертка получается последовательностью полигонов, когда каждый полигон соединен с двумя: следующим и предыдущим.
к примеру, такая развертка куба не получится:
Цитата

       ___
      |      |
       -----
      |      |
 ---- ----- ----
|     |      |     |
 ---- ----- ----
      |      |
       -----

получится только так:
Цитата

                  ---
                 |    |
 ---  ---  ---  ---
|    |    |     |    |
 ---  ---  ---  ---
|    |
 ---

PM MAIL   Вверх
skyboy
Дата 26.9.2009, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



думал, как же можно определить целевую функцию построения развертки, которую можно будет минимизировать/максимизировать. вот в голову пришло: минимизировать сумму длин "швов"(максимизировать длину "сгибов"). 
после чего пришла в голову идея: задача выбора последовательности полигонов может быть сведена к задаче коммивояжера, где узлами графа будет полигоны, ребрами - факт смежности двух полигонов, а весом можно взять разность между максимальной длиной ребра и длиной текущего ребра. в таком случае, минимизация суммы весов при проходе даст максимизацию суммы сгибов(при выборе определенного ребра мы генерируем последовательность полигон 1 + полигон 2, уже соединенных между собой).
естевенно, после генерации последовательности надо будет проверить развертку на самопересечение и произвести разделение развертки на непересекающиеся сегменты или произвести поиск другого решения.
что скажете?
PM MAIL   Вверх
skyboy
Дата 26.9.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



блин, чем я думал?
после триангуляции, каждый узел получаемого графа будет соединен с тремя соседями.
следовательно, куча узлов с нечетным количеством ребер - гамильтонов цикл невозможен. это не задача коммивояжера.
фактически, необходимо свести имеющийся граф к задаче коммивояжера, удалив часть ребер(на развертке они будут "швами" - не будут соединять две грани) с минимальной суммарной длиной, так чтоб в оставшемся графе можно было построить гамильтонов цикл.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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