First of all, I used my calculation to make a simple parabolic reflector. I just plotted it out on graph paper and then set a few nails as guides to hold the mirror in place. This actually worked really well. (Even more surprising in light of how poorly the (first!) oven-formed one came out. More about which below.)
The one on the right has a black dot where I pre-calculated the focus to be, the one on the left is just a different focal length.
Now then. Having a single strip mounted with nails isn't that useful to me, so I want to mass produce these. Can't use the nail thing as a form since it'll just bend unevenly. I spent quite a few days trying to figure out how to make a jig that would cut a perfect parabola, but it was too hard (I still have some ideas on that, though, but that's another 2 or 3 posts). (And before you tell me, I know all about the T-square and string method of drawing one.) I eventually decided to just freehand follow a line.
(Other item of note: I originally wanted to have the mirror soften and sink down into shape, but that creates alignment problems. Instead I clamped the bendy strip cold. But that means it's hard to tell when I've reached temperature. So I put a probe down into the coldest part of the thing. The tip of the temperature probe is resting right on the mirror, so when that gets up to ~210°F, I can stick a fork in it. This takes like 2 hours--wood is a really great insulator, unfortunately.)
(Oh also: You can't see it, but there's a little alignment peg sticking out of the convex part of the form. There's a corresponding hole in the concave part so it can stick through. There's also a hole in the middle of each mirror. If I put each mirror on the peg, then after I'm done with all of them, I can line them up perfectly. So clev.)
How could that possibly be? How could a few nails hastily thrown together at a few points make a better parabola than a careful, full-contact form?
Then a phrase floated up out of the darkness1. The curve parallel to a parabola is not another parabola. Just think about that for a minute. If you have a parabola and you want to make a curve parallel to it, you can't just take the same parabola and shift it up. Nor can you use some other parabola. (Read the gories yourself, it's pretty cool. If you like that sort of thing.)
So if you cut a parabolic form and sandwich it around a mirror, FOR EXAMPLE, then you are probably going to get the wrong shape because the two halves want to be parallel (i.e. separated by the thickness of the mirror) but can't. Wellity wellity wellity.
I took the equations in that paper and made a little program2 that would generate an SVG file of the shapes I wanted. Now I can take those back to my shop assistant and have him cut it out again.
(Note to anyone who actually reads this far, runs the program, examines the output and starts wondering: The curves aren't really all that different. I think the issue isn't so much that the curve is wrong, but that the poor alignment doesn't provide even pressure across the entire mirror. So it ends up wibbly-wobbly rather than smooth. Then again, the freehand wood parabola isn't all that smooth either, so maybe THAT'S the source of the error. The nail method at least creates a smooth curve, even if it isn't mathematically perfect.)
1I think it came from Practical Conic Sections, a really rip-roaring tale that I've been reading to the kids at bedtime. But seriously, it's very clear and pretty practical.
#!/usr/bin/python # p1 and p2 are parallel to the parabola, i.e. a constant distance # away *along the normal to the parabola*. # For a curve C with generated by the function y = f(x), the parallel # curve C' is given parametrically by: # y' # X = x - k ------------- # sqrt(1+(y')^2) # # 1 # Y = y + k ------------- # sqrt(1+(y')^2) # where k is the distance of the parallel from the curve. # For derivation, see "The Curve Parallel to a Parabola is not a # Parabola" by F. Max Stein. import math print '<?xml version="1.0" standalone="no"?>' print '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"' print '"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">' print '<svg xmlns="http://www.w3.org/2000/svg"' print ' width="8.5in" height="14in">' focallength = 2.5 a = 1/(4.0 * focallength) mirrorwidth = .125 vertoffset = 7 horizoffset = 2 phorizoffset = 2 prevx = 0 prevy = 0 pprevx = 0 pprevy = 0 first = True x = -5.5 while x <= 5.5: y = a*x*x px = x - (mirrorwidth * 2 * a * x)/(math.sqrt(1 + (2*a*x)**2)) py = y + (mirrorwidth * 1)/(math.sqrt(1 + (2*a*x)**2)) if not first: print '<line x1="%.2fin" y1="%.2fin" x2="%.2fin" y2="%.2fin" style="stroke:black;stroke-width:2"/>' \ % (prevy+horizoffset, prevx+vertoffset, y+horizoffset,x+vertoffset) print '<line x1="%.2fin" y1="%.2fin" x2="%.2fin" y2="%.2fin" style="stroke:red;stroke-width:2"/>' \ % (pprevy+phorizoffset, pprevx+vertoffset, py+phorizoffset,px+vertoffset) prevx = x prevy = y pprevx = px pprevy = py x += .125 first = False print '</svg>'