In case you're curious how my lens was derived:
Looking at the image sideways, the AVS picture is a line. I put a sphere which sticks a bit above the plane.
|
|
|
|
.-¯¯¯¯¯X.
/ / \
---/------/----\--------
| . |
(sorry for the crappy ascii art)
The incoming rays are vertical, and I assume an infinitely refractive material (i.e. the refracted ray runs along the surface normal inside the lens).
You can determine the intersection of the refracted ray with the surface using trigonometry. If you do it right, you will get a distance-only formula. If you use parameters in your formulas, you can tweak the shape later on.
The trick to a good lens is to make sure the curvature is right, and that the lens has no effect at the edge.