I would like to calculate the angle of a ray $r$ from a given point $p$ such that it gets "stuck" reflecting between two congruent mirror-disks. For why there is such a ray, see the (amazing!) answer by Bill Thurston to the earlier MO question "Trapped rays bouncing between two convex bodies."

The angle is highly sensitive/unstable. For example, the difference in the two angles below—one for which the $25$-times reflected ray emerges below, one for which the reflected ray emerges above—is $0.00001^\circ$:

I can compute the angle that leads to a trapped ray by searching between these two extremes, but it is a rather mindless, brute-force search.

Q1. Is there some "clean" analytical formulation for which the angle that leads to a trapped ray is a root, or a fixed point?

I am seeking a slick, or rather, an insighful way to view this computation. I can concatenate my computations to form a type of function whose root I'm finding, but that is (to me) not insightful.

I realize the vagueness of this question may frustrate; apologies for that! Perhaps a sharper question is the following:

Q2. What is the computational complexity of computing the angle to $L$ bits, as a function of $L$?

Perhaps it is best to assume $p$ is specified in some small constant number of bits, so that the focus is on the bits needed to determine $r$. Suggestions welcomed!

  • 1
    $\begingroup$ This might be relevant: en.wikipedia.org/wiki/Shooting_method $\endgroup$ – Yoav Kallus Jan 11 '14 at 1:28
  • $\begingroup$ If there is an 'entrapment' then $\exists$ n-gon P given by n-tuple($p_i$); n>=2 (n=2 being the trivial case),such that $p_i\in C$ the set of reflective surfaces and, the angle at any vertex $p_i$; is bisected by the normal to C at that vertex. Point of origin of the entrapped ray must belong to P .Hence: a ray from a point p can only be entrapped if p $\in$ a line segment with end points points on C. Note: A line normal to any two points on C(and not intersecting it any where else) gives n=2 solution,X axis here.**Q** Are there solutions for n>2 for a general case or even the given one. $\endgroup$ – ARi Jan 15 '14 at 6:31
  • 2
    $\begingroup$ @ARi: There are no periodic reflection trajectories with period $n>2$ for any two strictly convex smooth bodies, as is easy to see. As per my answer below, a reflected light ray can only be trapped in one direction, and that only by asymptotically approaching the unique $2$-gon representing (the double of) the shortest segment joining the two bodies. A non-trapped ray escapes after bouncing back and forth a finite number of times, eventually either going through the strait or not. $\endgroup$ – Robert Bryant Jan 16 '14 at 3:26
  • $\begingroup$ Just out of curiosity, what program you used to do these nice images? :) $\endgroup$ – Shamisen Feb 2 '14 at 1:37
  • 1
    $\begingroup$ @Shamisen: I used Mathematica. But for an earlier analogous image, I used C++. $\endgroup$ – Joseph O'Rourke Feb 2 '14 at 1:55

This is really more of a response to the OP's request for an 'insightful way to view the computation' than it is an answer to the specific problem; so keep this in mind. On the other hand, as I'll point out later, the features of this answer do generalize to handle other pairs of convex bodies, even if they can't be made as explicit, so I think it does shed some light on the nature of even the OP's exact problem of two circular disks of the same radius.

Let's look at a case of a pair of convex bodies for which we can compute the reflection operation on the rays more-or-less exactly and can explicitly say when a ray leaving a given point in a given direction gets trapped. This explicit example relies on classical facts about confocal conics, so let me review those: Consider the conics in the plane that share a common pair of foci: For definiteness, let the two foci be $F_\pm = (\pm a,0)$, where $a>0$ is fixed. The conics with these two foci are the conics $$ C_\lambda:\qquad \frac{x^2}{\lambda^2} - \frac{y^2}{a^2-\lambda^2} = 1 $$ which is a hyperbola (when $0<\lambda<a$) or an ellipse (when $\lambda>a$). (The limiting case as $\lambda\to0^+$ is the vertical line $x=0$ (a 'degenerate' hyperbola'), the limiting case as $\lambda\to a^+$ is the segment on the $x$-axis joining the two foci (a 'degenerate ellipse'), and the limiting case as $\lambda\to a^-$ is the pair of intervals on the $x$-axis given by $|x|\ge a$ (another 'degenerate hyperbola') .)

Notice that a line $L$ in the plane is tangent to one of the ellipses in the above family if and only if it does not separate the two foci, it is tangent to one of the hyperbolae in the above family (including the 'degenerate' hyperbola $x=0$) if and only if does separate the two foci, and it passes through a focus if and only if it is (simultaneously) 'tangent' to the 'degenerate ellipse' and the 'degenerate hyperbola'.

Now, it is a classical fact (easily verified by algebra) that if a ray is reflected off one nondegenerate conic in the confocal family, then the incident ray and the reflected ray are both tangent to one other conic in the confocal family. (This is the two-dimensional limit of Jacobi's famous formula for the conservation laws for the geodesic equations on ellipsoids.)

With this in mind, choose two numbers $\lambda_1$ and $\lambda_2$ satisfying $0<\lambda_1\le \lambda_2<a$ and let $R_1$ be the convex region bounded by the left branch of the hyperbola $C_{\lambda_1}$ and let $R_2$ be the convex region bounded by the right branch of the hyperbola $C_{\lambda_2}$.

Let $R_0$ be the (nonconvex) region left over between the two convex regions, and consider how rays in $R_0$ behave on reflection: First, any ray leaving a point $p\in R_0$ that lies on an 'elliptic' line, i.e., a line that does not separate the two foci and hence is tangent to an elliptic curve $C_\mu$ (for some $\mu>a$), will have its reflected ray on either of the two bounding hyperbolae still be tangent to $C_\mu$ and hence will still lie on an elliptic line. Hence, none of its further reflections will ever cross the 'throat' $C_{a^+}$ and, in fact, eventually, after enough reflections (forward and backward), the ray will diverge into one of the two directions where $|y|$ goes to infinity. Second, any ray leaving a point $p\in R_0$ that lies on a line that passes through one focus will, after reflection in either of the bounding hyperbolae, will become a ray that lies on a line passing through the other focus. It is easy to show that, if you follow this ray through reflections in one direction (forward or backward) or the other, then it will converge on (but, of course, never reach) the 'throat' $C_{a^+}$, i.e., it will be trapped. Third, and finally, any ray that lies on a 'hyperbolic line', i.e., one that passes strictly between the two foci, will, upon reflection in either bounding hyperbola, become another ray lying on a hyperbolic line. In fact, following such a ray through both forward and backward reflecting trajectories will yield a path that, at one end, goes off to $y = -\infty$ and, at the other end, goes off to $y=+\infty$. Thus, we know exactly where any given ray goes.

Reducing this to algebra, one sees that a reflected ray in the region $R_0$ gets trapped (in exactly one of two directions) and limits on the 'throat' if and only if it begins as a null ray for the quadratic form $$ Q = (x^2{-}a^2)\ dy^2 - 2xy\ dx\ dy + y^2\ dx^2 $$ while the reflected ray (extended forward and backwards) goes through the throat and diverges if and only if $Q$ is negative on the ray and it bounces back and 'escapes' (both forward and backwards) without going through the throat if and only if $Q$ is positive on the ray. This gives a complete picture in this case.

In the original case of the two circles (whether they have the same radius or not), something similar will be true: In the 'hour glass' between the two external tangents to the circles (and exterior to the circles), there will be a quadratic form $Q$ with the property that the null vectors for $Q$ will generate reflection paths that converge (in one direction or the other) to the segment between the circles that lies on the line through their centers, the negative vectors for $Q$ will generate reflected rays that go through the 'throat' and escape in both directions, and the positive vectors for $Q$ will generate reflected rays that eventually escape in both directions without going through the throat. While I can prove that $Q$ exists, it is not clear to me how to compute it explicitly (if that's possible) in the case of two circles (even if they have the same radius), but it will exist and have coefficients that are real analytic.

More generally, if you have any two disjoint convex bodies that are, say, smooth, with their boundaries having nonvanishing curvature, then, in a neighborhood of a shortest segment joining their boundaries, there will be such a quadratic form $Q$ (with smooth coefficients, in fact, even analytic, if the boundaries are analytic curves) with these properties. This is a consequence of the stable manifold theorem.

In general, it seems to me that one should not be surprised that two very close vectors could have quite different ultimate results after a large number of reflections: For a $Q$-null vector, there will be an infinite number of reflections as it converges on the throat, and very slight jiggling in the positive or negative directions will clearly result in two very close initial conditions, each of which has a very large number of reflections before they diverge qualitatively, one going through the throat and one not. What might be interesting qualitatively could be 'how fast' in some appropriate sense the number of 'bounces before escape' goes up as your initial vector approaches a $Q$-null vector.

If I have time later (and there is interest), I'll add some remarks supporting these observations about the general case and giving more detail about the dynamics, which are interesting, in which the 'throat' is a hyperbolic fixed point (i.e., with one stable and one unstable manifold) whose exponential eigenvalues can be computed explicitly from the geometry.

  • 1
    $\begingroup$ Wow! This is insightful! "if you follow this ray through reflections in one direction ..., then it will converge on (but, of course, never reach) the 'throat' $C_{a^+}$, i.e., it will be trapped." I greatly appreciate this richly informative answer. $\endgroup$ – Joseph O'Rourke Jan 15 '14 at 12:05

Consider a light ray very close to becoming trapped, just above the central horizontal line. The fall of its height between two bounces is roughly proportional to the distance between the two discs times the angle of its descent. The drop of angle at the bounce is equal to twice the angle to the center of the disc, which, if the discs have unit radius, is approximately twice the height.

so we have $\Delta h = d \theta$, $\Delta \theta = 2 h$.

This difference equation is very very unstable. To stick the landing, we must have the proportionality $h/\theta = \sqrt{ d/2 }$.

This is only approximate. But as we get closer and closer to the trapped horizontal line, the approximation gets more an more accurate, so the ratio gets closer and closer to $\sqrt{d/2}$.

So what we can do is take a light ray, very close to $0$, at an angle and a height of this exact ratio, and send it upward.

Unforunately this just gives us a way to construct trapped light particle trajectories. It doesn't tell us how to get one that passes through a particular point.

However, we can parameterize the starting positions with angle and height at this ratio by a variable, say $h$. Then after each bounce, the new position is determined by a function that is differentiable in $h$, and we can very easily differentiate it. This means we can compute the derivative of the final position (say, the $x$ coordinate when we have reached the desired $y$ coordinate) and apply Newton's method to rapidly converge on the correct starting position.

Since Newton's method is so fast, the only source of problems is the error in my estimate for the starting position $\theta = \sqrt{2/d} h$. I think the error is $O(h^2)$, which blows up to $O(h)$ once we get away from the discs. This seems manageable, but we might hope to improve it with a more accurate estimate. Specifically I think we can express $\theta$ as a power series in $h$, and computing a few more terms of this power series will improve accuracy dramatically if we start with small $h$.

  • $\begingroup$ Nice, Will! I can confirm your "very very unstable" from my experiments. This is an illuminating insight, even if "it doesn't tell us how to get [a trajectory] that passes through a particular point"---Thanks! $\endgroup$ – Joseph O'Rourke Jan 11 '14 at 22:44
  • $\begingroup$ @JosephO'Rourke Thanks! I have edited the answer to do a little bit better at getting a trajectory that passes through a particular point. $\endgroup$ – Will Sawin Jan 11 '14 at 22:56

Consider the following approach. For the case of two circles, it is clear that there is a stuck ray that "lives" on the line between the two centers. Pick a point Q near this line and shoot a ray from it in an attempt to hit P. When you have found such a ray, or gotten close, record the number of reflections as well as the angle of arrival at P. Now repeat, with the goal of increasing the number of reflections before arriving at P.

As you gather data on how to get to P from Q, you may notice points Q' which most desirable trajectories pass through,and which may be better starting points. It might be that it is easier to creep up on your goal by using points Q which approach the limiting case.

  • $\begingroup$ How would this be an improvement on the technique of simply recording how many reflections a ray from $p$ achieves before the trajectory either passes through the $x$-axis or starts going up? $\endgroup$ – S. Carnahan Jan 11 '14 at 7:06
  • $\begingroup$ It may not. However, if one knows there are trapped rays easily obtained emanating from Q or a small neighborhood of Q, that might ease or speed up the computation of the angle from P. $\endgroup$ – The Masked Avenger Jan 11 '14 at 7:32
  • $\begingroup$ Interesting idea, to work backwards, trying to hit $p$... $\endgroup$ – Joseph O'Rourke Jan 11 '14 at 14:00

Here is a separate idea, which may give you a better intuition. Let's give clay pigeons a break and call it shooting at a moving plate.

Setup: pistol P, moving target C parameterized by angle r of shot.

Intitally P is fixed, and C is motionless. As r varies, compute position of reflected object D reflected off tangent plane of contact. You should end up with an interval for r and C'(r), the position and orientation of reflection of D.

Now iterate by replacing C by C'(r), and D by D(r), the new object to be reflected. Repeat as often as possible. The equations for the nth iterate hopefully will yield to computability analysis.

  • $\begingroup$ If computing C'(r) is too much info to store, consider fixing C'(r) and compute P'(r), the relative position of P's reflection instead. $\endgroup$ – The Masked Avenger Jan 11 '14 at 19:25

This is my attempt to illustrate Robert Bryant's description beginning with

"Consider the conics in the plane that share a common pair of foci:"

I've plotted his conics $C_\lambda$ with $a=1$, ranging over $0 < \lambda < 2$.


  • $\begingroup$ That's a nice picture, but you added a ray reflecting off of an ellipse rather than one reflecting off of an hyperbola, which is what you'd want to illustrate. In fact, you'd probably want to choose a left branch of a hyperbola and a right branch of a (possibly different) hyperbola and show a ray reflecting between them several times to illustrate the conservation law. $\endgroup$ – Robert Bryant Feb 6 '14 at 10:00
  • $\begingroup$ @RobertBryant: I've removed the reflected ray. Might return to this in the future... $\endgroup$ – Joseph O'Rourke Feb 6 '14 at 12:28

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.