We have a billiard table in the shape of a right triangle ABC with B the right angle. A cue ball is struck at vertex A and bounces off sides BC, AC, AB, and AC at points D, E, F, and G respectively ending up at vertex B. Assume the angle of incidence equals the angle of reflection at each bounce. If the path segments AD, EF, and GB are concurrent, then what is the tangent of angle BAD?
(In reply to
Method by Charlie)
Based on the diagram I described, with reflected triangles, I wrote the following program, initially varying a (angle CAB) between 10 and 44, but narrowing it down, to get the two crossing points (EF and GB) with AD as close to zero as possible:
DECLARE FUNCTION asind# (x#)
DEFDBL AZ
DIM SHARED dr
pi = ATN(1) * 4
dr = pi / 180
CLS
a = 30 ' angle CAB
' base AB assumed equal to 1
FOR a = 41.8535301# TO 41.8535412# STEP .000001#' uses A' as the origin for polar coordinates
b = 90  a
ar = 2: atheta = 0
br = 1: btheta = 0
cr = 1 / COS(a * dr)
ctheta = a
bpr = 1: bptheta = 2 * a
cpr = cr: cptheta = 3 * a
bppr = bpr: bpptheta = 4 * a
tanBAD = SIN(bpptheta * dr) * bppr / (COS(bpptheta * dr) * bppr + 2)
ABpp = SQR(4 + bppr  4 * bppr * COS(4 * a * dr))
sinGBA = SIN(4 * a * dr) * 2 / ABpp
GBA = asind(sinGBA)
BAD = ATN(tanBAD) / dr
AXB = 180  GBA  BAD
AX = sinGBA / SIN(AXB * dr)
EAX = a  BAD
EA = 2 * SIN(BAD * dr) / SIN((180  a  BAD) * dr)
XEA = BAD + a
AX2 = SIN(XEA * dr) * EA / SIN((180  XEA  EAX) * dr)
PRINT USING "###.#######"; a; AX; AX2; AX  AX2; BAD
NEXT a
FUNCTION asind (x)
IF x = 1 THEN
asind = 90
ELSE
asind = ATN(x / SQR(1  x * x)) / dr
END IF
END FUNCTION
Variables that are three capital letters are angles; two capital letters are lengths between the points.
The results are:
angle CAB A to GB A to EF diff angle BAD
41.8535301 0.4187826 0.4187827 0.0000001 12.0127686
41.8535311 0.4187826 0.4187826 0.0000000 12.0127652
41.8535321 0.4187826 0.4187825 0.0000001 12.0127617
41.8535331 0.4187826 0.4187824 0.0000002 12.0127582
41.8535341 0.4187826 0.4187822 0.0000003 12.0127547
41.8535351 0.4187826 0.4187821 0.0000004 12.0127513
41.8535361 0.4187826 0.4187820 0.0000005 12.0127478
41.8535371 0.4187825 0.4187819 0.0000007 12.0127443
41.8535381 0.4187825 0.4187818 0.0000008 12.0127408
41.8535391 0.4187825 0.4187816 0.0000009 12.0127374
41.8535401 0.4187825 0.4187815 0.0000010 12.0127339
41.8535411 0.4187825 0.4187814 0.0000011 12.0127304
Angle measures are in degrees and it looks like angle BAD = 12.0127652, when angle CAB is 41.8535311 to produce the concurrence condition. That gives angle BAD a tangent function of .2127894334.
There are various places where I could have made a mistake in applying the law of sines or the law of cosines, so probably someone should draw the diagram as I had described and check my trig. The programming is pretty much straightforward assignments of values into mathematicallly named variables, based on other previously found variables. The dr variable is there just to convert degrees to radians as that's what the builtin functions use. My own asind incorporates it within the function itself.

Posted by Charlie
on 20050512 20:51:37 