_Title "Hilbert Curve Voronoi Coloring" 'AndyA 2021-04-14 B+ some simple mods ' https://www.qb64.org/forum/index.php?topic=3816.msg131682#msg131682
Const wide
= 128, cell
= 4 ' screen width 512 = height
pnt = 100
px = wide * cell + cell
py = wide * cell + cell
V
= _NewImage(wide
* cell
+ cell
, wide
* cell
+ cell
, 32) col
(i
) = _RGB(Pax
(i
) / px
* 255, Pay
(i
) / py
* 255, (px
- Pax
(i
)) / px
* 256)
dSqr(x, y) = (Pax(1) - x) * (Pax(1) - x) + (Pay(1) - y) * (Pay(1) - y)
Indx(x, y) = 1
ly = py - 1
For x
= Pax
(i
) + 1 To px
- 1
sy = y
adjct = Indx(x, y)
Line (x
, sy
)-(x
, y
+ 1), col
(adjct
) PSet (wide
* cell
, wide
* cell
) 'prime pump Hilbert 0, 0, wide, 0, 0
delt2 = (Pax(site) - x) * (Pax(site) - x)
dsq = (Pay(site) - ty) * (Pay(site) - ty) + delt2
dSqr(x, ty) = dsq
Indx(x, ty) = site
scan = 1
iL = lg: iX = x: iY = y
K
= Point((wide
- iX
) * cell
, (wide
- iY
) * cell
) Line -((wide
- iX
) * cell
, (wide
- iY
) * cell
), K
iL = iL \ 2
Hilbert iX + p * iL, iY + p * iL, iL, p, 1 - q
Hilbert iX + q * iL, iY + (1 - q) * iL, iL, p, q
Hilbert iX + (1 - p) * iL, iY + (1 - p) * iL, iL, p, q
Hilbert iX + (1 - q) * iL, iY + q * iL, iL, 1 - p, q