Что возвращает метод find_simplex() в scipy.spatial.Delaunay?Python

Программы на Python
Anonymous
Что возвращает метод find_simplex() в scipy.spatial.Delaunay?

Сообщение Anonymous »

Мне нужно выяснить, находятся ли некоторые из моих точек внутри или снаружи выпуклой оболочки, и я использовал этот ответ: (введите описание ссылки здесь).
Но когда я проверяю это, возвращаемый массив немного сбивает с толку. Например, если я создаю два одинаковых массива, использую один для создания оболочки, а затем проверяю, находятся ли точки второго в этой оболочке, я получаю следующее:

Код: Выделить всё

from scipy.spatial import Delaunay
pts_outer = np.array([[0, 0], [0, 5], [5, 0], [5, 5]])
pts_inner = pts_outer
hull = Delaunay(pts_outer)
hull.find_simplex(pts_inner)

Out[29]: array([0, 0, 1, 1], dtype=int32)
В документации к методу сказано только, что он возвращает: "Индексы симплексов, содержащих каждую точку. Точки вне триангуляции получают значение -1".
p>
Я понимаю, что 1 — это точка внутри корпуса, -1 — это точка снаружи, но что такое 0? Это точка, лежащая на границе корпуса? Но тогда почему только два пункта идут? Должно быть все.
Если я немного изменю тестовый массив:

Код: Выделить всё

pts_inner = np.array([[0, 0], [0, 5], [5, -1], [5, 5]])
hull.find_simplex(pts_inner)

Out[31]: array([ 0,  0, -1,  0], dtype=int32)
Первые две точки получили одинаковые индексы, третья точка получила -1, как и планировалось, но четвертая точка по какой-то причине изменилась на 0, хотя и корпус, и острие совершенно одинаковы.
Кто-нибудь знает, как интерпретировать эти результаты?

Подробнее здесь: https://stackoverflow.com/questions/643 ... hod-return

Вернуться в «Python»