Определить, находится ли 3D-точка внутри 2D-круга - PullRequest
2 голосов
/ 07 апреля 2010

Я хочу определить, находится ли точка P (x, y, z) внутри 2D-круга в 3D-пространстве, определяемом его центром C (cx, cy, cz), радиусом R и нормалью к плоскости, в которой находится круг на N.

Я знаю, что точка P, лежащая на двумерной окружности в трехмерном пространстве, определяется как:

P = R * cos (t) U + R sin (t) * ( N x U ) + C

где U - единичный вектор от центра круга к любой точке на круге. Но учитывая точку Q, как я узнаю, находится ли Q на или внутри круга? Какой соответствующий параметр t выбрать? И по каким координатам я сравниваю точку Q, чтобы увидеть, находятся ли они внутри круга?

Спасибо.

Ответы [ 2 ]

10 голосов
/ 07 апреля 2010

Проецируйте P на плоскость, содержащую круг, назовите это P '. P будет в круге тогда и только тогда, когда | P - P '| = 0 и | P '- C |

3 голосов
/ 07 апреля 2010

Я бы сделал это, разбив его на две части:

  1. Выясните, находится ли точка на той же плоскости, что и окружность (т. Е. Посмотрите, является ли произведение точки вектора, идущего от центра к точке, и нормали равно нулю)

  2. Выясните, находится ли он внутри сферы, содержащей круг (т. Е. Посмотрите, меньше ли расстояние от центра до точки, чем радиус).

...