Поиск точки в трехмерной области Вороного

Я использую пространственный пакет Scipy класса Voronoi для создания трехмерной тесселяции входных точек. Затем я случайным образом вставляю точки в домен «коробки». У меня возникли проблемы с выяснением того, как проверить, находится ли случайная точка в заданной области Вороного. Я полагаю, что, поскольку у меня есть все вершины для каждой области Вороного, я должен быть в состоянии сделать это, но я не смог обдумать это. Любое понимание, пример кода или инструменты Python, которые могут сделать это довольно прямолинейно?

Любая помощь приветствуется, SB

Обновление, я думаю, что упустил некоторую важную информацию:

Мне нужно зациклиться на каждой области Вороного, генерируя случайные точки во всей области, но сохраняя точки только для этой конкретной области Вороного. Я выбираю распределение по всему пространству Вороного для каждого региона.


person user3611086    schedule 07.05.2014    source источник


Ответы (1)


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

Ближайшая из ваших точек ввода будет представлять область, содержащую вашу новую точку.

person kolenda    schedule 07.05.2014
comment
Это работает, однако есть оговорка с моей проблемой. По сути, мне нужно зациклиться на каждой области Вороного, генерируя случайные точки во всей области, но сохраняя точки только для этой конкретной области Вороного. Я выбираю распределение по всему пространству Вороного для каждого региона. - person user3611086; 08.05.2014
comment
Вы связаны производительностью или просто хотите, чтобы она работала? Каков ваш типичный номер региона и количество случайных точек? Вы также можете сделать проверку области полигонами выпуклой оболочки. - person kolenda; 08.05.2014
comment
Просто хочу, чтобы это работало! Номер области может быть 1000, а количество случайных точек может быть 100 000. Дайте вам немного больше деталей. Мне важно попытаться написать свой собственный код, чтобы сделать то, что это делает: li.mit.edu/Archive/Graphics/A/utils.html#voronoirize - person user3611086; 09.05.2014
comment
Для такого количества регионов может быть лучше создать секущие плоскости для границ вашего региона, что приведет к выпуклой оболочке региона. Таким образом, вы сможете намного быстрее проверять столкновения между точками и регионами. - person kolenda; 12.05.2014