powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Трансформация картинки
4 сообщений из 4, страница 1 из 1
Трансформация картинки
    #33273642
Yossarian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот возникла такая задача :
Дано : набор точек на плоскости. И соединяющие их отрезки.
То есть векторная картинка.

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

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

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


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


Washington Irving
...
Рейтинг: 0 / 0
Трансформация картинки
    #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]