How to Parametrize a Circle in 3D from Its Center and Two Points
At a glance
- 1. Check the distances
Confirm both points are the same positive distance from the center.
- 2. Build a basis
Normalize the first radius vector, then remove its component from the second and normalize the remainder.
- 3. Write the circle
Combine the two perpendicular unit vectors with cosine and sine, and add the center.
- 4. Find the second angle
Use atan2 on the second point’s coordinates in the basis to find its parameter value.
A circle in three dimensions lies in a plane, so its parametrization needs two perpendicular directions in that plane. The center and two points on the circle usually determine those directions and the radius.
The method below constructs an orthonormal basis from the two center-to-point vectors, then uses sine and cosine to trace the circle. It also shows how to find the parameter value corresponding to each given point.
Check that the data define a circle
Write the center as and the two points as and . Their radius vectors are
For both points to lie on the same circle centered at , they must satisfy
If the distances differ, no circle with that center passes through both points. If the radius is positive and the two radius vectors are not parallel, they determine a unique plane through the center. If they are parallel, the circle’s plane is not uniquely determined; this includes the case where the two points are antipodal.
Construct the circle’s plane basis
Use the first radius vector as the first direction:
Remove from the second radius vector its component parallel to :
If , normalize it to obtain a perpendicular unit vector:
The vectors and are perpendicular, lie in the circle’s plane, and both have length one. The circle is therefore
At , this gives . As varies, the cosine and sine coefficients trace the circle in the plane spanned by the two basis vectors. Restricting to traces it once; allowing all real repeats the same circle periodically.
Find the parameter for the second point
The formula starts at , but generally occurs at a different parameter value. Express its radius vector in the constructed basis. Its angle is
Here returns the angle whose sine and cosine have the signs and ratio specified by and . Since , the basis coordinates are and , so . The angle is in radians, and its value can differ by a multiple of without changing the point.
Worked example
Take
The radius vectors are and . Both have length , so . The first unit vector is
The component of perpendicular to is , which gives . Thus
For , the basis coordinates are and . Therefore . Substituting gives
Common mistakes
- Using the points instead of radius vectors: Subtract the center first. The directions are and , not and themselves.
- Using the second radius vector directly as the second basis direction: It usually is not perpendicular to the first. Remove its parallel component before normalizing.
- Forgetting to check the radii: The construction assumes both points are exactly distance from the center.
- Treating the plane as unique for antipodal points: If , the radius vectors specify only a line. Any plane through that line gives a possible circle, so more information is needed to choose one.
- Using three unrelated coordinate sinusoids: The cosine and sine must multiply two perpendicular directions in the circle’s plane; this keeps the curve planar and at constant distance from the center.
Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.