Physics Stack Exchange is a question and answer site for active researchers, academics and students of physics. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm designing a parabolic solar concentrator and am doing ray-tracing on Matlab from scratch. I'm beginning to look into compound concentrators and would need to have an equation for a parabola rotated by x degrees centered at a specific (non origin) point. The equation I am using for my parabolas is $ a*(x-X)^2 - Y $.

I am not sure how to rotate this equation besides using a rotation matrix, solving for y using quadratic equation and choosing one term. Even this method gives me another parabola in $y(x)$.

Any suggestions on a simple way to get half of a parabola rotated by $ \theta $? Should I be looking into parameterization?


share|cite|improve this question
Do you want it rotated around the central axis of the parabola, or an arbitrary axis? I would think that rotation around the central axis would be relatively easy, and that rotation around an arbitrary axis would be much more difficult. – Colin McFaul Jul 3 '12 at 19:05
A rotated parabola is not a function and therefore you only choice is to use a rotation matrix. – ja72 Jul 3 '12 at 19:06
I think it is easier to rotate the rays, and keep the paraboloid fixed. – Bernhard Jul 3 '12 at 19:21
Why are you ray tracing in the first place? – Colin K Jul 3 '12 at 19:25 The bold lines are what I want to define in matlab as a reflective surface. Only problem is parabolas have tilted axes. So I would like to rotate and then select for the lower term of the quadratic (making it a function). – Shrim Jul 3 '12 at 21:11
up vote 1 down vote accepted

I don't know if this is useful, but I would proceed with the parametrization and the rotation matrix, anyway.

Let us rename $x-X\rightarrow x$. Then, notice that the equation of the parabola $y = a x^2$ can be parametrized by $x = t$, $y = a t^2$, as $t$ goes from $-\infty$ to $\infty$; or, as a vector,

$$ (x(t), y(t))=(t,a t^2) $$

To rotate the graph of the parabola about the origin, you must rotate each point individually. Rotation clockwise by an angle $\theta$ is a linear transformation with matrix

$$ \left( \begin{array}{ccc} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta \\ \end{array} \right) $$

Thus, if we apply this linear transformation to a point $(t, t^2)$ on the graph of the parabola, we get

$$\left( \begin{array}{ccc} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta \\ \end{array} \right) \left( \begin{array}{ccc} t \\ a t^2\\ \end{array} \right) = \left( \begin{array}{ccc} t\cos\theta +a t^2\sin\theta\\ -t\sin\theta+a t^2\cos\theta\\ \end{array} \right)$$

So, as $t$ goes from $-\infty$ to $\infty$, this is a parametrization of the graph of the rotated parabola.Then you have to convert back to $x$ and $y$, put them in the equation $y=x^2$ and that's it.

To get a cartesian equation for the new parabola, you can just solve for $t$ in the first line $a t^2 + t cot\theta = x/\sin\theta$ and put the expression for $t$ in the second one. Doing this, you have an equation for $x$ and $t$ that corresponds to the "constraint" $x$ and $y$ must satisfy to be on the new parabola!

share|cite|improve this answer
so from the rotated parameterized matrix at the end, converting this back to x and y simply gives [xcos() + ysin(), -xsin() + ycos()], which is just [x,y] rotated by theta, correct? Is there a specific way to convert this back into cartesian to be useful? – Shrim Jul 3 '12 at 20:44
Thanks for the response, btw – Shrim Jul 3 '12 at 20:44
I edited, maybe this is more clear! Isn't it? – usumdelphini Jul 3 '12 at 21:09
yea, that makes sense to me. Thanks for the help – Shrim Jul 3 '12 at 23:07
Good idea! I'd add that leaving things in parametric form may be useful, as it makes computing a surface normal trivial. – Colin K Jul 4 '12 at 1:54

Your Answer


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.