I’m a fan of a nice rounded triangle: the Wankel-based rotary engines found in the Mazda RX-7 and RX-8 use a rounded triangle, and I’ve owned one of each. And there’s the mathematically more pure Reuleaux triangle, which is a curve of constant width, which gives it some nice mathematical properties.

I’ve always been a little disappointed that the Wankel rotor isn’t a true Reuleaux: the curves are apparently shallower, so that as it nears the center of the curve, the width is less than at the points of the triangle. But what happens if you extend the Reuleaux, so that the curve’s radius is either longer or shorter than the equilateral triangle from which it’s derived?

Let’s swipe the 60° arcs at a variety of radii, to see what happens.

For a long radius, the 60° isn’t enough, and there are gaps. For smaller radii, the 60° is too far. As it gets too small, the shape goes through a crossover, then is concave, and finally separates to disconnected arcs.

For the long radius, if we continue past the 60°, it will eventually cross. (To find the crossing angle, for example for the right arc where it crosses x=0, we solve for x_{right_arc} = x1+r*cos(θ)=0 — in this case, about θ≈69°.)

Those won’t have the property of being a curve of constant width. If we wanted that, it may be doable. I don’t have a rigorous proof, but if R is bigger than 1 by some L (R=1+L), it would make sense that if we did an arc from the opposite point with radius L, then the gaps should always be L from the triangle point — and the original arc-R is always R from the point — so I think that means that the rounded tip is always R+L=1+2L from the original arc-R.

However, part of me wonders whether the sharp tip is necessary for the constant-width: with a sharp tip, one side of the constant width stays on that sharp point while the other side of the constant width rolls with the original arc. With a rounded tip, the arc-length for the arc-R 60° is much longer than the arc-length for the rounded tip, so the wide-Reuleaux might not roll correctly to maintain constant width. That will take some more investigation (not done yet).

Returning to the original problem, but this time the R<1 condition: let’s look at the open and concave vs. the desired concave. With R<0.5 (for example, R=0.2, above), we see that the arcs are disjoint. This is because without a radius of 0.5, the three triangles, which are D=1 apart from each other, cannot touch. But where does it transition from the concave shape at R=0.5 thru to the desired convex shape (which can roll) we can see at R=0.75. Doing math from any two corners: for the spokes of the triangle (lines from center to lower-left, center to top, and center to lower-right), we can compute that R=1/sqrt(3) will give the crossover point: at that, the three circles all cross the origin, so the shape is neither concave nor convex, and has a width of zero.

Now we need to compute where the small-radius arcs cross each other. Let’s see where the right arc crosses the left arc: when the x coordinate of the right matches the x coordinate of the left, within the range of θr = [0°,60°] and θl = [120°,180°]. Looking at the symmetry of the crossing points, you can see that that they cross closer to θr=60° and θl=120°; since you know the arcs “trace out” at the same “speed” (both have same frequency), you can also see that θl = 180°-θr. So, solving the x equations for θr to get θ2, you get θ2 = arccos(0.5/r). Using the same symmetry, since right and left cross when θr = θ2 – 0, it makes sense that right and bottom cross when θr = 60 – θ2 = θ1. (Yes, I labeled the θ subscripts as θ1<θ2.) Since there are three segments, each spaced 120° apart, you can just add 120° or 240° to both those angles to find the start and stop angles for each .

Implementing those rules in gnuplot (a cross-platform freeware graphing utility, which I happen to be learning at work right now — this mental exercise seemed like the perfect opportunity to grow my gnuplot skills to help me use the tool better at work), I am able to show generalized-Reuleaux triangles with R less than, equal to, or greater than 1. (The gnuplot source code is available.)

My R<1 investigation does indeed create a rounded triangle which has the arcs somewhat narrower than required for constant-width. So it may be that the rotary engine uses a diminished-Reuleaux — or they may use some other curve. I've never torn apart my engine to measure. (I'd much rather drive my sports car than tear it apart.)