As shown on the RC Julia set thread, it can be helpful to use colour parameters other than RGB. This is a morning's worth of play--

The only thing to remember is that hue varies 0 to 360, while saturation and value are between 0 and 0.9999. Works nicely with LB graphic commands and with LB Bresenham routine ( see RC) you can draw very easily lines from A to B whose colour varies along their length.


Code

    nomainwin

    global pi, col$: pi   =3.14158265

    WindowWidth     =570
    WindowHeight    =600
    UpperLeftX      =int( ( DisplayWidth  -WindowWidth)  /2)
    UpperLeftY      =int( ( DisplayHeight -WindowHeight) /2)


    graphicBox #w.g, 9, 9, 537, 537

    open "Ring fade demo" for window as #w

    #w   "trapClose quit"

    #w.g "down; fill darkblue ; goto 267 267"
    #w.g "size 2"

    for R =1 to 255 step 0.25
        call hsv2rgb R, 0.49, 0.79    '   hue, saturation, value
        #w.g "color "; col$
        #w.g  "circle "; R
        scan
    next R

    #w.g "getbmp scr 1 1 537 537"
    bmpsave "scr", "ring" +str$( time$( "seconds")) +".bmp"

    wait

    sub hsv2rgb h, s, v '                       hue 0-360, saturation 0-1, value 0-1
        c   =v *s       '                           chroma
        h   =h
        x   =c *( 1 -abs( ( ( h /60) mod 2) -1))
        m   =v -c   '                               matching adjustment

        select case
            case h < 60
                r = c: g = x: b = 0
            case h <120
                r = x: g = c: b = 0
            case h <180
                r = 0: g = c: b = x
            case h <240
                r = 0: g = x: b = c
            case h <300
                r = x: g = 0: b = c
            case else
                r = c: g = 0: b = x
        end select

        rd      = abs( int( 256 *( r + m)))
        gn      = abs( int( 256 *( g + m)))
        bu      = abs( int( 256 *( b + m)))
        col$    =right$( "  " +str$( rd), 3) +" " +right$( "   " +str$( gn), 3) +" " +right$( "   " +str$( bu), 3)

    end sub

    sub quit handle$
        close #w
        end
    end sub