Microsoft Small Basic

Program Listing: BDX376
' Spiral
' Copyright © 2016 Nonki Takahashi. The MIT License.
' Last update 2016-06-11
' Challenge 2016-06
'
gw = 598
gh = 428
GraphicsWindow.Width = gw
GraphicsWindow.Height = gh
xo = gw / 2
yo = gh / 2
color = "1=#FF0000;2=#FF5500;3=#FFAA00;4=#FFFF00;5=#AAFF00;6=#55FF00;"
color = color + "7=#00FF00;8=#00FF55;9=#00FFAA;10=#00FFFF;11=#00AAFF;12=#0055FF;"
color = color + "13=#0000FF;14=#5500FF;15=#AA00FF;16=#FF00FF;17=#FF00AA;18=#FF0055;"
n = Array.GetItemCount(color)
r1 = 4
rMax = 1
mag = 1.003
While rMax < gw * 0.05
For θ = 0 To 360
r2 = r2 + r1 / 360
For i = 1 To n
_θ = Math.GetRadians(θ + (i - 1) * 360 / n)
x = xo + r2 * Math.Cos(_θ)
y = yo + r2 * Math.Sin(_θ)
GraphicsWindow.BrushColor = color[i]
GraphicsWindow.FillEllipse(x - r1, y - r1, 2 * r1, 2 * r1)
EndFor
r1 = r1 * (mag - 0.002)
r2 = r2 * mag
rMax = rMax * mag
EndFor
EndWhile