2011-02-06 3 views
1

Я ищу алгоритм, который принимает данные векторного изображения (например, наборы ребер) и интерполирует другой набор ребер, который является «средним» из двух (или более) наборов.Усреднение векторных изображений для получения изображений между изображениями

Чтобы выразить это по-другому, это похоже на Adobe Flash, где вы «tween» двух векторных изображений, и программное обеспечение автоматически вычисляет промежуточные изображения. Поэтому вы указываете только начальное изображение и конечное изображение, затем Flash берет на себя все промежуточные изображения.

Есть ли установленный алгоритм для этого? Особенно в таких случаях, как разное количество ребер?

ответ

2

Что именно вы подразумеваете под краями? Мы говорим о гладкой векторной графике, использующей кривые?

Ну, основной стратегией было бы просто сделать линейную интерполяцию по точкам и направлениям вашего полигона.

В принципе вы могли бы просто взять две соответствующие точки (один из каждой кривой/векторной форме) и интерполировать их с:

х (Т) = (1-т) * р + T * р с т в [0,1]

(т = 0,5 будет то, конечно, даст вам среднее между двумя)

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

Одна большая проблема заключается в том, чтобы соответствовать правильным точкам каждого полигона управления, особенно если обе кривые имеют разную степень. Вы можете попытаться сделать повышение уровня на одном, чтобы соответствовать степени другого, а затем по одному назначать их друг другу и интерполировать.

Возможно, это помогает ...

+0

Я на самом деле имел в виду полигоны, но также будут применяться гладкие кривые решения. Да, я знаю о линейной интерполяции, но то, что я ищу, - это алгоритм, который отображает, например. набор из 4 пунктов к другому набору из 7 пунктов. – Leonth