Есть прямая из массива точек
List<Point> listP;
Как дать фигуре, в которую складывается эта линия определение из 4 типов. Причем чтобы можно было из неведомо чего(картинка 2 - замкнутость есть, но больше незамкнутости), определить в процентном содержании к какому-нибудь из этих типов(в случае картинки 2 к типу 2 соответственно).
Любую информацию, которая пришла вам в голову, напишите, пожалуйста.
Типы:
Это как же у вас интересно определяется наличие не замкнутости/замкнутости точек? Даже если вы от второй к первой, от третей ко второй чертите линию - то почему вы в одних случаях то замыкаете последнюю точку на первую, то нет? И вас устраивает, определение замкнутости как "последняя точка совпадает с первой"?
А если устраивает - то не хотите соединять отрезки и определять есть ли пересечения отрезков? (гуглим алгоритм Бентли - Оттмана)
Также насколько я знаю, по набору точек можно пробовать определить, является фигура выпуклой (алгоритм Грехема, построение минимально выпуклых оболочек)
Судя по условию, есть два свойства - замкнутость и скругленность (острость).
Замкнутость определить легко, для этого считаем расстояние между первой и последней точками, и если оно меньше определённого порога, то считаем, что фигура замкнутая (порог можно подбирать по-разному, можно его положить равным чем-то константному, например 1e-4, а можно выбирать исходя и, например, диаметра вашей кривой, то есть брать его, допустим, 0.01 умножить на максимальное попарное расстояние между точками списка).
Со скруглённостью сложнее. Тем более, что могут быть скруглённые участки и угловатые. Тут предлагаю попробовать для каждой точки считать угол между выходящими из неё отрезками (на предыдущую и на следующую точку), если угол меньше определённого порога (допустим, меньше, чем 135 градусов), то угол считается "острием". Далее, смотрите, если "остриёв" у вас больше, чем, например, 30% точек, то, считаете что кривая острая, иначе округлая.
Это только идея, чтобы её довести до ума, придётся пошаманить, добавить какие-то разумные эвристики оценки, исходя из специфики конкретной задачи. Ну или же, если совсем серьёзно подходить, запускать нейросеть, которая все вышеизложенные построения (и даже больше) выследит сама из экспериментальных данных.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем доброго дня! На форме лежит richtextbox с acceptstab=trueПо умолчанию символ tab \t в нем идентичен 8-ми пробелам
На сцене есть 2 камеры: главная и вторая неактивная с тэгом "my tag"Почему при использовании camera_2 = GameObject
Товарищи, подскажите, как во ViewModel передать параметр кликнутой кнопки? в хамл прописан биндинг на комманду, кнопка во вью модел вызывается,...
На странице изначально есть форма (метод POST) с кнопкой "Проверить", которая обрабатывается в этом же файле и выводит введенный текст в генерирующуюся...