_TITLE "2 point gradient swirl" cx = wW / 2
cy = wH / 2
'test 2 point gradient
a! = a! + incr!
x1
= cx
+ 15 * a!
^ 1.25 * COS(a!
+ _PI) y1
= cy
+ 15 * a!
^ 1.25 * SIN(a!
+ _PI) x2
= cx
+ 15 * a!
^ 1.25 * COS(a!
) y2
= cy
+ 15 * a!
^ 1.25 * SIN(a!
) twoPtGrad 150, 50, 500, 500, x1, y1, x2, y2, k1, k2
SUB twoPtGrad
(x0
, y0
, w
, h
, x1
, y1
, x2
, y2
, c1
, c2
) d1 = ((x1 - x) ^ 2 + (y1 - y) ^ 2) ^ .5
d2 = ((x2 - x) ^ 2 + (y2 - y) ^ 2) ^ .5
midInk c1, c2, d1 / (d1 + d2)
'c1 color to left, c2 color to right
SUB horzGradRec
(x0
, y0
, w
, h
, c1
, c2
) midInk c1, c2, cx / w
SUB vertGradRec
(x0
, y0
, w
, h
, c1
, c2
) midInk c1, c2, cy / h
'let c1 be outer most color c2 the inner most
SUB gradCirc
(x0
, y0
, r
, c1
, c2
) midInk c2, c1, cr / r
fcirc x0, y0, cr
' let fr## be the fraction from 1st color to 2nd color 0 means all color 1, 1 means all color 2
SUB midInk
(c1
, c2
, fr##
) COLOR _RGB32(r1
+ (r2
- r1
) * fr##
, g1
+ (g2
- g1
) * fr##
, b1
+ (b2
- b1
) * fr##
, 3)
RadiusError = -Radius
X = Radius
Y = 0
' Draw the middle span here so we don't draw it twice in the main loop,
' which would be a problem with blending turned on.
LINE (CX
- X
, CY
)-(CX
+ X
, CY
), , BF
RadiusError = RadiusError + Y * 2 + 1
LINE (CX
- Y
, CY
- X
)-(CX
+ Y
, CY
- X
), , BF
LINE (CX
- Y
, CY
+ X
)-(CX
+ Y
, CY
+ X
), , BF
X = X - 1
RadiusError = RadiusError - X * 2
Y = Y + 1
LINE (CX
- X
, CY
- Y
)-(CX
+ X
, CY
- Y
), , BF
LINE (CX
- X
, CY
+ Y
)-(CX
+ X
, CY
+ Y
), , BF