Given a general equation for a plane through the origin $$\vec{n}\cdot\vec{r}=0$$ With no assumptions made on $\vec{n}$ except having unit modulus, real $3\times1$ vector. How can you describe a unit circle, centred at the origin, laying in this plane?

I can only seem to find parametric equations that rely on knowing two vectors in the plane, but with no knowledge of the vector $\vec{n}$ you can't generally create two such vectors, as some component(s) of $\vec{n}$ may be zero. All the information you need to define such a circle is contained within the normal to the plane, so I am confused as to why there is not a form defined only with reference to this vector.

EDIT#1: With reference to this matrix. Can we start with in the $xy$ plane

$$(x,y,z)=(\cos(\theta),\sin(\theta),0)$$ Then rotate this about the axis ($\vec{u}$ in the link) $$\vec{u}=(-n_2,n_1,0)$$ about an angle $\phi$ that satisfies $$\tan(\phi)=\frac{n_3}{\sqrt{n_1^2+n_2^2}}.$$ I claim that $\vec{u}$ is the axis of rotation as this vector is perpendicular to the normal of the plane $\vec{n}$ and lies in the $xy$ plane. Also that $\phi$ is the angle which the $xy$ plane is rotate about $\vec{u}$ by.

Therefore by substituting into the matrix linked to at the beginning of this edit, transforming $(x,y,z)=(\cos(\theta),\sin(\theta),0)$ by said matrix will give parametric coordinates for the tilted circle in terms of $\vec{n}$?

EDIT #2: I find this for the rotation matrix from the $xy$ plane to the plane with normal $\vec{n}$, from the method described above.

$$Q=\small{\left(\begin{array}{ccc} {\mathrm{n_2}}^2 - {\mathrm{n_2}}^2\, \sqrt{1 - {\mathrm{n_3}}^2} + \sqrt{1 - {\mathrm{n_3}}^2} & \mathrm{n_1}\, \mathrm{n_2}\, \left(\sqrt{1 - {\mathrm{n_3}}^2} - 1\right) & \mathrm{n_1}\, \mathrm{n_3}\\ \mathrm{n_1}\, \mathrm{n_2}\, \left(\sqrt{1 - {\mathrm{n_3}}^2} - 1\right) & {\mathrm{n_2}}^2\, \sqrt{1 - {\mathrm{n_3}}^2} + {\mathrm{n_3}}^2\, \sqrt{1 - {\mathrm{n_3}}^2} - {\mathrm{n_2}}^2 - {\mathrm{n_3}}^2 + 1 & \mathrm{n_2}\, \mathrm{n_3}\\ - \mathrm{n_1}\, \mathrm{n_3} & - \mathrm{n_2}\, \mathrm{n_3} & \sqrt{1 - {\mathrm{n_3}}^2} \end{array}\right)}$$

This is found from this MATLAB code.

EDIT #3: Using $\vec{n}=(\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}})$ I find this parametrically plots

enter image description here

  • $\begingroup$ You can find vectors in a general manner, when allowing a few cases to deal with zero-entries on $\vec{n}$. $\endgroup$ – AlexR Sep 13 '13 at 13:59
  • $\begingroup$ @AlexR: Yes, I did consider doing that, it's just not as neat as I would like. There doesn't seem to be any reason you couldn't just define it based on $\vec{n}$, so I was wondering if anyone knew how. $\endgroup$ – Freeman Sep 13 '13 at 14:01
  • 1
    $\begingroup$ Well, maybe considering $\mathbb L = \{ x : x \in S^2 \wedge n\cdot x = 0 \}$ gives at least a nice non-parametric equation... $\endgroup$ – AlexR Sep 13 '13 at 14:04
  • $\begingroup$ @AlexR: That certainly looks nice :) Except I need to be able to calculate intersections of this tilted circle with other geometrical objects. $\endgroup$ – Freeman Sep 13 '13 at 14:06
  • $\begingroup$ Then how about first "collision-checking" with $S^2$? Not sure on that though. i.e. $${\rm dist}(O, \vec{0}) \leq 1$$ $\endgroup$ – AlexR Sep 13 '13 at 14:08

Let $\|n\|=1$ and choose any $p$ with $\langle n,p\rangle=0$ and $\|p\|=1$. Then $n\times p$ satisfies $\langle n, n\times p\rangle=0$, $\|n\times p\|=1$ and $$c(t)=\bigl(p\cdot\cos(t), (n\times p)\cdot\sin(t)\bigr)$$ is a parametrization of the unit circle in the plane.

This may easily be extended to arbitrary planes and circles with arbitrary radii.


  • $\begingroup$ Thank you! This seems worryingly obvious now.. $\endgroup$ – Freeman Sep 15 '13 at 10:00
  • $\begingroup$ Will these equations extend if I increase the dimensions of the vectors? $\endgroup$ – Skynet094 Apr 11 '17 at 1:10
  • $\begingroup$ Unfortunately not, as a circle in a hyper plane is more difficult to describe. $\endgroup$ – Michael Hoppe Apr 11 '17 at 10:17

How about this. WLOG, let $\Vert n \Vert = 1$. Chose $\mu \neq n \in S^2$ and compute $$\nu_1 = n\times \mu; \nu_2 = \nu_1 \times n$$ Then $\nu_1, \nu_2 \in A := \{x\in S^2 | n\cdot x = 0\}$ So we have our two points and only need one case: $$n = \mu_0 \Rightarrow \text{chose } \mu = \mu_1, \text{ else } \mu = \mu_0$$ with both $\mu_0\neq \mu_1 \in S^2$ chosen prior to all.

  • $\begingroup$ Thank you for this, I definitely appreciate it, I just think I really need an explicit formula. $\endgroup$ – Freeman Sep 13 '13 at 14:15

For any vector $u$ that is not parallel to $n$, you can construct an orthogonal basis for the plane using the cross product: just take $e_1 = n \times u$ and $e_2 = n \times e_1$. Your problem seems to be that you want to be able to generate $e_1$ using some function of $n$. Indeed such a function is hard to find - it turns out that for any continuous map of the sphere, some vector will be mapped to a multiple of itself. (This is the "fixed-point property of the real projective plane".) Thus for this approach to work you would have to use a discontinuous map - I'm not sure whether or not this is an issue for you. (For example you could send $n$ to $(1,0,0)$ if $n=(0,0,\pm1)$, or just rotate about the $z$ axis by some fixed amount for any other $n$.)

I think your best bet is to write $n$ in spherical polar coordinates as $n = (\theta, \phi)$ for $\theta$ the azimuthal angle, and then find a rotation matrix $M$ that sends $(0,0,1)$ to $n$ - I believe an example is $$M = \left( \begin{array}{ccc} -\sin (\theta ) & \cos (\theta ) \cos (\phi ) & \cos (\theta ) \sin (\phi ) \\ \cos (\theta ) & \cos (\phi ) \sin (\theta ) & \sin (\theta ) \sin (\phi ) \\ 0 & -\sin (\phi ) & \cos (\phi ) \\ \end{array} \right).$$ $e_1 = M(1,0,0)$ and $e_2 = M(0,1,0)$ are then an orthonormal basis for the plane. You should be able to write $\theta,\phi$ in terms of the cartesian components of $n$ to extract an explicit formula for the $e_1$; and then of course $\sin(s) e_1 + \cos(s)e_2$ will parametrise your circle.

  • $\begingroup$ Thank you, I was actually playing around with this earlier, so for the rotation that takes $(0,0,1)$ to $\vec{n}$, take the $xy$ plane to the plane in which lies the circle. So I could then transform the parametric form for a circle in the $xy$ by this method? $\endgroup$ – Freeman Sep 13 '13 at 14:19
  • 1
    $\begingroup$ @Freeman: Yeah, that's the idea. $\endgroup$ – Anthony Carapetis Sep 13 '13 at 14:20
  • $\begingroup$ Many thanks! :) $\endgroup$ – Freeman Sep 13 '13 at 14:22
  • $\begingroup$ @Freeman: I'm not sure it's really any better than the "discontinuous map" approach - when $n$ is the north/south pole $\theta$ is not uniquely determined, so you will have to make some arbitrary choice there. Hope it helps anyway. $\endgroup$ – Anthony Carapetis Sep 13 '13 at 14:25
  • $\begingroup$ It does, it's good to know my previous idea was on the right lines, I pursued other methods as it gets messy pretty quickly. $\endgroup$ – Freeman Sep 13 '13 at 14:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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