Rounded Boxes
`Rounded Boxes
`by OBese87
`19/08/09
set display mode 1024,768,32
hide mouse
sync on:sync rate 80
`backdrop
create bitmap 1,1024,768
for i = 0 to 255
ink i,0
box 0,i*3,1023,(i+1)*3
next i
set current bitmap 0
`= Main Loop =
do
`corner radius
r=r+upkey()-downkey()
if r<1 then r=1
if r>364 then r=364
copy bitmap 1,0
ink -2,0
rounded_box(20,20,1004,748,r)
ink 65535,0
set cursor 0,0
print "Use UP or DOWN to adjust corner radius."
sync
loop
`= Functions =
Function rounded_box(ax,ay,bx,by,r)
box ax+r,ay,bx-r,ay
box bx,ay+r,bx,by-r
box ax+r,by,bx-r,by
box ax,ay+r,ax,by-r
dots=r*6.28
deg2dot#=360/(dots*1.)
dotsperqtr#=dots/4.
for corner = 0 to 3
select corner
case 0:x=bx-r:y=by-r:endcase
case 1:x=bx-r:y=ay+r:endcase
case 2:x=ax+r:y=ay+r:endcase
case 3:x=ax+r:y=by-r:endcase
endselect
qtr=corner*dotsperqtr#
for o=qtr to qtr+dotsperqtr#
u=sin(o*deg2dot#)*r
v=cos(o*deg2dot#)*r
dot x+u,y+v
next o
next corner
Endfunction
TGC Forum - converting error messages into sarcasm since 2002.