Determine if a point is contained in the circle in 3d space

852 Views Asked by At

I have a problem where I need to determine if a point is contained in the area of a circle in 3d space.

For my circle, I have the radius (R), the position of the center (C) and a normal vector to the circle (N). With that, I can easily draw my circle.

Now, I will have a point generated and I want to know if this point is located on the area of the circle.

Currently, I'm thinking of obtaining the parametric equations of my circle which are:

\begin{align*} x &= r\cos\phi\cos\theta \\ y &= r\sin\phi \\ z &= r\cos\phi\sin\theta \end{align*}

Then, I could easily verify if the point verifies these equations.

However, I don't know how to convert the data I have (Radius, Center position and normal vector) into these 3 parametric equations and I need help with that !

1

There are 1 best solutions below

4
On BEST ANSWER

Here's my opinion,
1. check if $|CP|\leq R$
2. check if $\vec{CP}\cdot N = 0$

more specifically, if $C = (x_{0},y_{0},z_{0})$ , $N=(a,b,c) $ and $P=(x,y,z)$
P is on disc C when,
1. $(x-x_{0})^{2}+(y-y_{0})^{2}+(z-z_{0})^{2}\leq R$
2. $(x-x_{0})*a+(y-y_{0})*b+(z-z_{0})*c=0$

the second condition ensures that P is on the same plane as the disc.