Мы имеем точку (х, у) и множество других точек (х уг). Как определить, какой из (xi, yi) находится в пределах круга с центром (x, y) и радиус r (данный номер)?Найти, если точки находятся в пределах окружности с заданным центром и радиусом
ответ
Простой способ.
Вычислить расстояние от точки до центра круга. Если меньше радиуса, то его внутри круга.
Если SQRT ((хи-х)^2 + (у-у)^2) < = д
вы можете оптимизировать это. Ommit SQRT для лучшей производительности. (xi-x)^2 + (yi-y)^2 <= d^2 –
Если (XI - х)^2 + (у - у)^2 меньше, чем d^2, он внутри. Если он равен d^2, он находится на круге. Если оно больше d^2, оно снаружи.
У меня была такая же проблема, чтобы решить внутри процедуры plsql. Решение выше полностью верно, и я сделал то же самое. Но это резко ухудшило производительность моей программы plsql. Вместо этого вычисления круга я использовал квадрат. Потому что это можно сделать, не выполняя такой расчет и в самом выражении sql. Это улучшило производительность запросов более чем на 10x
Почему downvote? –
psasik: Наверное, потому что это пограничный вопрос не по программированию. – John