Задать вопрос

Как сравнить форму кривых Безье?

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

Известны координаты точек и якорей. Эти координаты для двух сравниваемых кривых не совпадают. Количество точек на кривой тоже может быть различным. Нужно сравнивать именно форму. Для true форма должна "примерно" совпадать.

Нашел $1 recognizer, но как я понял, с Безье кривыми он не работает.

Посмотрите пожалуйста картинку:
8256e536c9ce4f01bf12d792473038d5.png
  • Вопрос задан
  • 3036 просмотров
Подписаться 6 Оценить Комментировать
Ответ пользователя SeptiM К ответам на вопрос (3)
@SeptiM
Если я правильно понимаю, вы хотите сравнивать с точностью до искривления. Я бы составил параметрическое уравнение кривой и взял вторую производную d^2 f / dt^2. В каждой точке это будет нормаль к кривой. Нужно для каждой кривой записать последовательность, когда эта нормаль слева от кривой, когда равна нулю (кривая идет прямо или точка перегиба), когда справа. Получится такая строчка, например, +1,0,-1,...,1. Ну и их сравнивать.

Знак можно получить, например посчитав детерминант матрица 2x2 составленный из векторов для первой и второй производной. Можно попробовать сделать это сначала численно. Если подходит, попробовать решить аналитически.
Ответ написан