_TITLE "I See Ashish Challenge #1 Takes Us On A Tangent" 'bplus 2019-07-09 CONST xmax
= 740, ymax
= 740, xc
= xmax
/ 2, yc
= ymax
/ 2, br
= 370
t(0).n = 150: t(0).r = .08 * br: t(0).c = &H5522AAEE
t(1).n = 220: t(1).r = .095 * br: t(1).c = &H3344DD55
t(2).n = 350: t(2).r = .14 * br: t(2).c = &H2222FFAA
t
(3).n
= 16: t
(3).r
= .35 * br: t
(3).c
= &H19AAFFFF: t
(3).osStart
= _PI / 72: t
(3).osStop
= _PI(3 / 72): t
(3).osStep
= _PI / 360t(4).n = 199: t(4).r = .53 * br: t(4).c = &H22008800
t(5).n = 200: t(5).r = .67 * br: t(5).c = &H220000FF
t(6).n = 300: t(6).r = .81 * br: t(6).c = &H220000FF
t
(10).n
= 27: t
(10).r
= .88 * br: t
(10).c
= &H28FFFF77: t
(10).osStart
= .15: t
(10).osStop
= .16: t
(10).osStep
= _PI(1 / 1440)t(7).n = 350: t(7).r = .9 * br: t(7).c = &H2244FF44
t(8).n = 350: t(8).r = .93 * br: t(8).c = &H226666FF
t(9).n = 350: t(9).r = .95 * br: t(9).c = &H228888FF
FOR ao
= t
(tSet
).osStart
TO t
(tSet
).osStop
STEP t
(tSet
).osStep
tangentsC1C2 xc, yc, t(tSet).r, br, t(tSet).n, ao, t(tSet).c
tangentsC1C2 xc, yc, t(tSet).r, br, t(tSet).n, 0, t(tSet).c
' x, y are same as for circle,
' rOuter is the outer limit radius
' nAround to evenly distribute lines around the circle
' radAngleOffset to start lines at different places on circle
DIM alpha
, beta
, cosLength
, tAngle
, x1
, y1
, x2
, y2
, x3
, y3
, i
AS INTEGER
'calc the length from rInner to Router at Tangent
alpha
= _ACOS(rInner
/ rOuter
) beta
= _PI(1 / 2) - alpha
cosLength
= rOuter
* COS(beta
) tAngle
= _PI(2) / nAround
x1
= x
+ rInner
* COS(i
* tAngle
+ raOffset
) y1
= y
+ rInner
* SIN(i
* tAngle
+ raOffset
) x2
= x1
+ cosLength
* COS(i
* tAngle
+ raOffset
+ _PI / 2) y2
= y1
+ cosLength
* SIN(i
* tAngle
+ raOffset
+ _PI / 2) x3
= x1
+ cosLength
* COS(i
* tAngle
+ raOffset
+ _PI(3 / 2)) y3
= y1
+ cosLength
* SIN(i
* tAngle
+ raOffset
+ _PI(3 / 2)) LINE (x2
, y2
)-(x3
, y3
), c