![]() |
Сравнение кривых
Всем привет!
сразу к делу) вообщем есть кривая номер один (массив точек (х,у)) и есть другая кривая тоже массив точек длины массивов разные! вообщем нужно сравнить 2 кривые и узнать схожи ли они) и на сколько схожи совсем нет идей поэтому и спрашиваю тут... ![]() |
Ответ: Сравнение кривых
Предлагаю простой способ: Переносишь 1ую точку второй кривой на 1ую точку первой. Пробегаешься циклом по остальным точкам и cравниваешь дистанцию от данной точки первой кривой до данной точки второй кривой. И если она больше допустимой погрешности то они не равны. Тоесть допустим: 2 кривые 2 массива. В одной кривой 5 звеньев. Перемещение второй к первой: PHP код:
PHP код:
PHP код:
|
Ответ: Сравнение кривых
а если прямые имеют разный масштаб? Подобие подразумевает, что символ набранный разным кеглем должен счиаться одинаковым
|
Ответ: Сравнение кривых
>Предлагаю простой способ:
>Переносишь 1ую точку второй кривой на 1ую точку первой. >Пробегаешься циклом по остальным точкам и cравниваешь дистанцию >от данной точки первой кривой до данной точки второй кривой. И если >она больше допустимой погрешности то они не равны. Поэтому я и написал что массивы имеют разную длину) я думал какнить повставлять в массив с меньшим числом новые точки, но это както по хитрому... надо (оО кое-что уже придумал) >а если прямые имеют разный масштаб? Подобие подразумевает, >что символ набранный разным кеглем должен счиаться одинаковым масштаб один! и положение одной кривой над другой - близко наложенно) |
Ответ: Сравнение кривых
масштаб выровнять несложно! (габаритные прямоугольники подогнать да и все дела)
а сравнивать думаю так построить жирные линии между точками чем жирнее тем больше погрешность то есть построить обе фигуры жирными линиями и наложить если совпало N % то значит можно считать эквивалентными а вот если поворот имеет место быть, то тогда хз сходу на ум ничего не приходит :( кстати как ты сей массивець точек получил ? :( Из растровой картинки али как? |
Ответ: Сравнение кривых
нет не из расты, из расты медленно получается
поэтому и ищю метод побыстрей. первая кривая сделанна (к примеру) в редакторе 2я пользователем мышкой. ПС я уже придумал один метод, но он фигово работает, если кривые оч сложные |
Ответ: Сравнение кривых
Преобразовать кривые в набор прямых, измеряя при этом степень апроксимации этих кривых. По идее на этом этапе их можно привести к такому виду что количество точек будет одинаково, назовем этот вид нормализованным.
Затем сравниваем две получившиеся норм. кривые с учетом допустимых отклонений (например угол наклона одного отрезка первой кривой, больше на пол градуса, чем соответствющий отрезок второй). Основная идея - привести две кривые путем аппроксимации к одному виду. В выполнимости этого я несколько сомневаюсь :) |
Ответ: Сравнение кривых
я вот погуглил немного и узнал что с подобными задачами на УРА справляются нейросети !! к тому же достаточно простой структуры !! :)
|
Часовой пояс GMT +4, время: 23:44. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot