2016-12-11 4 views
0

Так что я пытаюсь что-то программировать для школьного проекта. Он должен прекратить работу, когда конкретная сфера (A) достигает другой сферы (B). Но это также позволяет ударить по этой сфере (B) в радиусе этой сферы (B).Как проверить, находится ли точка в радиусе другой точки

С другой стороны, это не позволяет ударить по некоторым другим сферам на своем пути.

Все эти сферы имеют определенный радиус.

ответ

0

Я нашел ответ. Вы можете рассчитать величину от вектора (радиус сферы (B), сферы радиуса (B)), и если это больше или равно величине расстояния между сферой (A) и (B), это будет означать, что сфера (A) находится в радиусе сферы (B).

sphereA = sphere() 

sphereB = (sphere(), sphere()) 

с sphereB существующим из многократной сферы Б

for i in range(len(spheres)): 
    mag(distance(sphereA.pos,sphereB[i].pos)) <= mag(vector(sphere[i].radius,sphere[i].radius,sphere[i].radius)): 
     exit() 

вы можете положить некоторое время истинному до этого или что-то еще, так что она продолжает проверять, если ваша первую сферу (A) не радиус вашей другой сферы (B)

расстояния (...) это функция, которая вычисляет вектор, расстояние между векторами *

* вектором (x2-x1, y2-y1, z2 -z1)

Смежные вопросы