This section simplifies the formula for the Cartesian coordinates of the terminal point of the reflected ray and derives a very similar formula for a terminal point of the virtual reflected ray.
In the next section all these new formulas together with some old formulas will be combined into a new user defined VBA function which will be used alone to trace the incident, the reflected and the virtual reflected rays.
Introduction to Geometrical Optics – a 2D ray tracing Excel model for spherical mirrors – Part 6
by George Lungu
– In the previous section we used the custom VBA functions Reflect() and Chart_Reflect() to
calculate the data for the incident and the reflected rays and charted all these rays on the
mirror chart.
– This section simplifies math behind the custom function Chart_Reflect().
– In the next section of the tutorial, the new Chart_Reflect
will be incorporated into a new Reflect_7() custom VBA
function, which in addition calculates a new end point for
the virtual ray. Having the incident point coordinates and
the coordinates of the end point for the virtual ray will
allow us to plot all three types of rays (incident, reflected
and virtual) which is a very useful feature especially for
convex mirrors.
Creating a new Reflect()” custom function:
– Charting line segments determined by two points on 2D
scatter charts seems to be fine even when the points are
out of the visible range (scale) of the chart.
– I had problems though, when one of the points had a
very large coordinate out of the chart scale, case in which
the slope of the line was severely distorted.
A Hubble Space Telescope backup mirror (not flown
into space) of correct shape build by Kodak, on display
<excelunusual.com> at National Air and Space Museum in Washington DC
1
– I encountered the previously mentioned case while plotting the reflected ray.
– Ideally we would like to calculate the exact point where the reflected ray intersects the nearest
border of the visible range on the chart, and make that the end point of the reflected ray.
– After extensive testing I found out that if the end point is farther (even 10-100 times farther
than the length of the diagonal of the visible chart area), things are fine and the reflected ray
still retains the proper slope.
Calculating the end point of the reflected ray- T(xT,yT) the new, simplified method:
– For now, let’s use a the following insight to obtain a second a point for the reflected ray:
Let’s assume the chart has the scale for the x axis ranging between x_scale_min and x_scale_max. Also let’s assume that M(xM,yM) the y axis ranges between y_scale_min and y_scale_max.
– The reflected ray points backwards ( see angle ae) so if we
choose an arbitrary length PT larger than the chart diagonal,
using the definition of the “sine” and “cos” trigonometric functions in the PAT straight triangle we can write:
<excelunusual.com>
2
Deciding a value for the PT length:
We can calculate PT as the diagonal of the viewing area:
The Cartesian coordinates of the terminal point of the virtual reflected ray:
– In certain situations when either the input beam is very
divergent or the mirror is convex, the reflected rays might
be divergent and their extensions (virtual rays) might
converge in a “virtual focus” behind the mirror.
Charting
the virtual rays intersecting themselves in a virtual focus
behind the mirror would be a very convenient way of
assessing optical aberrations in such a mirror.
<excelunusual.com>
3
Calculating the Cartesian coordinates of the the end point of the virtual reflected ray
V(xV,yV):
– Extending the horizontal line that passes through the incidence point and end extending the
reflected ray too, we can see that the reflected and the virtual ray both have the same slope:
T(xT,yT)
a Horizontal (parallel to x-axis)
– The formula for ae was derived before. We can use it to determine the coordinate of the virtual
ray end point which will be very similar to the formulas for calculating the (real) reflected ray
end point:
Next, we will combine all the formulas derived in this section with some of the old formulas into a new Reflect_7 custom VBA function.
to be continued…
<excelunusual.com>
4