# 3D intersection point between circle and triangle

Given a 3D triangle with vertices $(v0, v1, v2)$ and a 3D circle of radius $r$, centered at $c$, and lying in the plane perpendicular to $axis$, how can I test for intersection points between them? Note that I'm only interested in the circle's boundary (i.e. it's not a filled-in disk.)

I could approximate it by subdividing the circle into $n$ line segments and doing line/triangle intersection tests for each, but I figure a direct solution should be faster.

Perhaps a circle/plane test can help (followed by a test to see if the intersections are inside the triangle), but I'm not sure how to do that in 3D (and if the the circle lies on the plane too, giving infinitely many intersections, how to test if any of those lie inside the triangle?)

• Sorry, but what do you mean by 'perpendicular to axis'?
– M.B.
Commented Jun 1, 2012 at 0:12
• The circle is in 3D, so giving its center and radius isn't enough to fully describe it (that would be a sphere.) By saying 'perpendicular to $axis$', I mean that the circle's points lie on the plane with $axis$ as its normal (and passing through point $c$.) Commented Jun 1, 2012 at 0:14
• but WHICH axis do you mean? Commented Jun 1, 2012 at 0:15
• An arbitrary one — $axis$ is meant to be a new variable here. Commented Jun 1, 2012 at 0:18