I use a small gradient ball SUB in various programs. It had a flaw however - large balls with dark color values would have think back edges. Made a new version to fix that. Just thought I'd share it here. If you have one too, please share it - I'd love to see what other people are using. And if you see a way to improve mine please post it. Thanks!
- Dav
- Dav
Code: (Select All)
'================ 'GRADIENTBALL.BAS '================ 'Simple SUB that draw gradient balls. 'Coded by Dav, JULY/2023 dh = _DESKTOPHEIGHT * .85 SCREEN _NEWIMAGE(dh, dh, 32) DO ball RND * dh, RND * dh, RND * 500 + 25, RND * 255, RND * 255, RND * 255 _LIMIT 5 LOOP SUB ball (x, y, size, r, g, b) 'This SUB draws a gradient ball with given color. 'see current display status displayStatus%% = _AUTODISPLAY 'turn off screen updates while we draw _DISPLAY reg = .4 'if size is larger than value colors given, 'adjust the reg value to step down at a slower rate. 'This prevents thick black rim around larger balls 'that have a too low a given color value. IF size > r AND size > g AND size > b THEN IF r > g AND r > b THEN reg = r / size * .4 IF g > r AND g > b THEN reg = g / size * .4 IF b > r AND b > g THEN reg = b / size * .4 END IF 'now draw the ball using CIRCLE. 'Using smaller STEP value than 1 prevents gaps. FOR s = 0 TO size STEP .4 CIRCLE (x, y), s, _RGB(r, g, b) r = r - reg: g = g - reg: b = b - reg NEXT 'show the ball _DISPLAY 'If autodislay was previously on, turn it back on IF displayStatus%% = -1 THEN _AUTODISPLAY END SUB