Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

So let's assume I have a point $P$ in $3d$ space $(x_0, y_0, z_0)$. And I have a circle $C$ that is centered at $(x_1, y_1, z_1)$ with a radius $r$. I need to find the distance from $P$ to the nearest point of $C$. I'm not totally sure how to define a circle in $3d$ space, so suggestions there would help too :D

I really have very little idea where to begin with this (and I only have a very basic understanding of how to do the same thing with a point and a line). I haven't taken a math class in a number of years, but this concept will help tremendously in some $3d$ programming I'm working on.

share|improve this question
    
Do you mean a sphere? If you do mean a circle, how is its orientation given? –  joriki Apr 5 '11 at 6:45
    
I do mean a circle. The orientation is so that it's surrounding the z axis ... but I'd also need to know the distance with an arbitrary rotation about the y axis. –  greggory.hz Apr 5 '11 at 6:47
    
We will need more information about the circle: in 3d, center and radius are not enough. –  André Nicolas Apr 5 '11 at 6:50
    
@user6312, I thought that might be the case. Unfortunately I don't know how to define a circle unambiguously in 3d. In my program, I'm able to define the circle with respect to the x and y axes and then rotate it as needed. –  greggory.hz Apr 5 '11 at 6:53
add comment

1 Answer

up vote 3 down vote accepted

Project the point onto the plane in which the circle lies. Then take the distance to the circle's centre, subtract the radius and take the absolute value to get the distance within the plane. Then you get the total distance from the distance to the plane and the distance within the plane using Pythagoras.

share|improve this answer
2  
This is assuming that you mean a circle in the mathematical sense. If you actually meant a disc (a circle and its interior), then of course instead of $|d-r|$ you need $\min(0,d-r)$ (where $d$ is the distance from the projected point to the centre). –  joriki Apr 5 '11 at 7:03
    
That should be $\max(0,d-r)$. –  joriki Apr 5 '11 at 10:39
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.