RosettaCodeData/Task/Constrained-random-points-on-a-circle/Action-/constrained-random-points-on-a-circle.action
2023-07-01 13:44:08 -04:00

32 lines
487 B
Text

PROC DrawCircle(BYTE rmin,rmax,max,x0,y0)
BYTE count,limit
INT x,y,r2,rmin2,rmax2
limit=rmax*2+1
rmin2=rmin*rmin
rmax2=rmax*rmax
count=0
WHILE count<max
DO
x=Rand(limit) y=Rand(limit)
x==-rmax y==-rmax
r2=x*x+y*y
IF r2>=rmin2 AND r2<=rmax2 THEN
Plot(x+x0,y+y0)
count==+1
FI
OD
RETURN
PROC Main()
BYTE CH=$02FC,COLOR0=$02C4
Graphics(5+16)
Color=1
COLOR0=$0C
DrawCircle(10,15,100,40,24)
DO UNTIL CH#$FF OD
CH=$FF
RETURN