Обнаружить столкновение в Python - как isPointInPath - PullRequest
0 голосов
/ 03 ноября 2018

Я просто генерирую простой код меша для размещения сигнала.

Вот пример общей формы сетки:

domain = Rectangle(Point(0.0, 0.0), Point(1.0, 1.0)) 

Позже я создаю координаты окружности, не касаясь непосредственно границ этим фрагментом кода:

xN = random.uniform(0.1, 0.9)
yN = random.uniform(0.1, 0.9)
circ = Circle(Point(xN, yN), 0.1)

Внутри "домена" я размещаю эти круги.

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

Я пытался использовать скрипт isPointInPath, но для точки все в порядке, а не для круга (фигуры), который мне нужно использовать и вычислить.

Итак, в общем, я должен: - создать форму (позже используется как сетка) - создать круг и вычесть его из формы - сгенерировать еще один круг и, если он не сталкивается, вычесть его из вычитаемой формы - и так далее ...

Поскольку я не хочу генерировать круги в бесконечность (когда внутри фигуры не будет пространства без отверстий), я просто останавливаю ее после 3 раз «не удалось обнаружить столкновение».

Какую простую функцию или способ я должен использовать, чтобы достичь своего эффекта. Я пробовал много вещей, но мой путь более прост (объекты не двигаются).

1 Ответ

0 голосов
/ 03 ноября 2018

Если местоположение и радиус окружности известны, проверьте точку-кандидата для нахождения в радиусе окружности по уравнению расстояния (sqrt ((дельта х в квадрате) + (дельта у квадрате))

...