_Title "Canonical Logarithm Explorer: The Movie" ' b+ mod of another coding masterpiece by vince ' ref https://qb64forum.alephc.xyz/index.php?topic=4646.msg140513#msg140513
sw = 800
sh = 600
zoom = 100
a = 0.5
k = 0.09
sx = 2
sy = 1
tx
= a
* Exp(k
* 16) * Cos(16) + sx
ty
= a
* Exp(k
* 16) * Sin(16) + sy
x
= a
* Exp(k
* 0) * Cos(0) + sx
- tx
y
= a
* Exp(k
* 0) * Sin(0) + sy
- ty
u = (xx - sw / 2) / zoom
v = (sh / 2 - yy) / zoom
cdiv uu, vv, u - xl, v - yl, u + xl, v + yl
clog uu, vv, uu, vv
mm
= Sqr(uu
* uu
+ vv
* vv
) aa
= (pi
+ _Atan2(vv
, uu
)) / (2 * pi
) PSet (xx
, yy
), hrgb
(aa
, mm
)
pp(5) = 0
pp(4) = 7
pp(3) = 10
pp(2) = 12
pp(1) = 15
pp(0) = 15.9
tt = pp(ttt)
u = (xx - sw / 2) / zoom
v = (sh / 2 - yy) / zoom
uu = 0
vv = 0
x
= a
* Exp(k
* t
) * Cos(t
) + sx
- tx
y
= a
* Exp(k
* t
) * Sin(t
) + sy
- ty
cdiv p, q, 1, 0, x - u, y - v
cmul p, q, p, q, dx, dy
uu = uu + 0.1 * p
vv = vv + 0.1 * q
x
= -a
* Exp(k
* t
) * Cos(t
) - sx
+ tx
y
= -a
* Exp(k
* t
) * Sin(t
) - sy
+ ty
cdiv p, q, 1, 0, x - u, y - v
cmul p, q, p, q, dx, dy
uu = uu + 0.1 * p
vv = vv + 0.1 * q
cmul uu, vv, uu, vv, 0, -1 / (2 * pi)
mm
= Sqr(uu
* uu
+ vv
* vv
) aa
= (pi
+ _Atan2(vv
, uu
)) / (2 * pi
) PSet (xx
, yy
), hrgb
(aa
, mm
)
tt = pp(ttt)
u = (xx - sw / 2) / zoom
v = (sh / 2 - yy) / zoom
uu = 0
vv = 0
x
= a
* Exp(k
* t
) * Cos(t
) + sx
- tx
y
= a
* Exp(k
* t
) * Sin(t
) + sy
- ty
cdiv p, q, 1, 0, x - u, y - v
cmul p, q, p, q, dx, dy
uu = uu + 0.1 * p
vv = vv + 0.1 * q
x
= -a
* Exp(k
* t
) * Cos(t
) - sx
+ tx
y
= -a
* Exp(k
* t
) * Sin(t
) - sy
+ ty
cdiv p, q, 1, 0, x - u, y - v
cmul p, q, p, q, dx, dy
uu = uu + 0.1 * p
vv = vv + 0.1 * q
cmul uu, vv, uu, vv, 0, -1 / (2 * pi)
mm
= Sqr(uu
* uu
+ vv
* vv
) aa
= (pi
+ _Atan2(vv
, uu
)) / (2 * pi
) PSet (xx
, yy
), hrgb
(aa
, mm
)
r
= 0.5 - 0.5 * Sin(2 * pi
* h
- pi
/ 2) g
= (0.5 + 0.5 * Sin(2 * pi
* h
* 1.5 - pi
/ 2)) * -(h
< 0.66) b
= (0.5 + 0.5 * Sin(2 * pi
* h
* 1.5 + pi
/ 2)) * -(h
> 0.33)
n = 128
rr = 200 * r - 0.15 * mm - 35 * p
gg = 200 * g - 0.15 * mm - 35 * p
bb = 200 * b - 0.15 * mm - 35 * p
cosh#
= 0.5 * (Exp(x
) + Exp(-x
))
sinh#
= 0.5 * (Exp(x
) - Exp(-x
))
'u + iv = (x + iy)^(a + ib)
Sub cexp
(u
, v
, xx
, yy
, aa
, bb
) x = xx
y = yy
a = aa
b = bb
lnz = x * x + y * y
u = 0
v = 0
argz = atan2(y, x)
mag
= Exp(a
* lnz
- b
* argz
) ang = a * argz + b * lnz
'u + iv = (x + iy)*(a + ib)
Sub cmul
(u
, v
, xx
, yy
, aa
, bb
) x = xx
y = yy
a = aa
b = bb
u = x * a - y * b
v = x * b + y * a
'u + iv = (x + iy)/(a + ib)
Sub cdiv
(u
, v
, xx
, yy
, aa
, bb
) x = xx
y = yy
a = aa
b = bb
d = a * a + b * b
u = (x * a + y * b) / d
v = (y * a - x * b) / d
x = xx
y = yy
lnz = x * x + y * y
u = 0
v = 0