У меня есть набор 2d points
. Они X,Y coordinates
на стандартной декартовой сетке (в этом случае a UTM zone
). Мне нужно найти отверстия в этой точке, установленные предпочтительно с некоторой способностью задавать чувствительность алгоритма, который находит эти отверстия. Обычно эти наборы точек очень плотные, но некоторые из них могут быть гораздо менее плотными.
Какими они являются, если это помогает, являются точками, на которых была выбрана почва в поле для различных свойств, которые люди в сельском хозяйстве, по-видимому, находят полезными. Иногда в этих точечных образцах есть гигантские скалы или болотистые места или полные на маленьких озерах и прудах.
Из набора точек они хотят, чтобы я нашел вогнутый многоугольник, который примерно определяет эти отверстия.
Я уже написал алгоритм, который находит внешний вогнутый граничный многоугольник и позволяет установить чувствительность к тому, насколько грубым или гладким является многоугольник, который формируется алгоритмом. После этого они хотели бы найти дыры и иметь эти отверстия, данные им как вогнутый многоугольник, который, как я думаю, в некоторых случаях может быть выпуклым, но это будет краевой случай, а не норма.
Проблема в том, что единственными документами, которые я когда-либо слышал по этому вопросу, являются те, которые сделаны астрономами, которые хотят найти большие карманы пустоты в космосе, и я никогда не мог найти одну из своих работ с фактическим алгоритмом, показанным в них не что иное, как грубое концептуальное описание.
Я пробовал Google и различные научные поиски и т.д., но я не нашел много полезного до сих пор. Это заставляет меня задаться вопросом, может быть, есть имя для такого рода проблем, и я не знаю, поэтому я искал неправильную вещь или что-то еще?
Итак, после этого длинного объяснения, мой вопрос: кто-нибудь знает, что я должен искать, чтобы найти документы по этому предпочтительно с четко определенными алгоритмами или кто-нибудь знает алгоритм, который сделает это, чтобы они могли указать мне?
Все, что помогло бы мне решить эту проблему, было бы очень полезно и с большой благодарностью, даже просто исправить поисковые фразы, которые будут раскрывать потенциальные алгоритмы или документы.
Язык, в котором он будет реализован, будет С#, но примеры из чего-либо из пакетов Mathematica в MATLAB or ASM, C, C++, Python, Java or MathCAD
и т.д. были бы хороши, пока в примере не было некоторых вызовов, которые бы переходили к вещам типа FindTheHole
и т.д. Где FindTheHole
не определено или является собственностью внедряющего программного обеспечения, например MathCAD
примеры обычно имеют много.
Ниже приведены два примера реальных наборов точек, один плотный и один разреженный, а также области, в которых мне нужно найти: