Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Трансформация картинки / 4 сообщений из 4, страница 1 из 1
16.09.2005, 14:08
    #33273642
Yossarian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трансформация картинки
Вот возникла такая задача :
Дано : набор точек на плоскости. И соединяющие их отрезки.
То есть векторная картинка.

Начинаем картинку деформировать. Для этого задаем пары точек
и требуемые расстояния между ними. При этом не может быть задано
двух разных расстояний для одной и той же пары точек.

Требуется переместить точки так, чтобы выполнялись следующие условия :
1) расстояния, заданные на предыдущем шаге, должны быть именно такими
как задано.
2) Порядок точек не изменяется (если X1 < X2 то для образов точек X'1 < X'2,
аналогично для Y координаты)
3) Искажения картинки минимальны (не очень точно сформулированный критерий, здесь есть некая свобода творчества)

Подскажите алгоритм.


Washington Irving
...
Рейтинг: 0 / 0
16.09.2005, 14:50
    #33273810
Gerros
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трансформация картинки
Морфинг ?
...
Рейтинг: 0 / 0
16.09.2005, 15:51
    #33274117
Yossarian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трансформация картинки
Морфинг ? Похоже, но не совсем то. В морфинге мы знаем, к чему нужно
придти. Здесь нет. И если например задано ОДНО расстояние между
точками, то картинку нужно просто растянуть / сжать.
Ну и возможно что требования невыполнимы, тогда нужно об этом сказать.


Washington Irving
...
Рейтинг: 0 / 0
16.09.2005, 18:34
    #33274477
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трансформация картинки
Это больше смахивает на задачку про от всего отталкивающиеся магнитики на веревочках :)
В первом приближении я бы начал так:
Объявляем одну точку (с максимальным количеством связей) неподвижной. Берем точку B и смещаем ее вдоль вектора AB так, чтобы отрезок AB' совпал с заданым расстоянием. Следующий шаг, высчитываем точку C как пересечение окружностей c центарами в A и B' и радиусами AC' и B'C'. Повторяем последний шаг для всех оставшихся точек.
Для жестко заданых новых расстояний картинка получится всего одна.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Трансформация картинки / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]