'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'
DECLARE SUB arco (h!, v!, r!, l!, a!, c!, p!, cp!)
SCREEN 12
CONST pi = 3.1415926539#

FOR h = 20 TO 570 STEP 70
arco h, 200, 18, 50, 25, 7, 10, 15
NEXT

'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'
SUB arco (h, v, r, l, a, c, p, cp)
CONST pi = 3.1415926539#
b = (l - r - r) / 2
LINE (h, v)-(h + l, v), c
LINE (h, v)-(h, v + a), c
LINE (h + l, v)-(h + l, v + a), c
LINE (h, v + a)-(h + b, v + a), c
LINE (h + l - b, v + a)-(h + l, v + a), c
CIRCLE (h + (l / 2), v + a), r, c, 0, pi
PAINT (h + (l / 2), v + 1), c, c

IF p < 2 THEN : EXIT SUB

LINE (h + b, v + a)-(h + b + p, v + a - p), c
CIRCLE (h + (l / 2) + p, v + a - p), r, c, pi / 1.3, pi
PAINT (h + b + 2, v + a - 3), cp, c
LINE (h, v)-STEP(b, a), c, BF
FOR j = 1 TO p - 1
   LINE (h + j, v - j)-STEP(l, 0), cp
   LINE STEP(0, 0)-STEP(0, a), cp
NEXT

LINE (h, v)-(h + p, v - p), c
LINE STEP(0, 0)-STEP(l, 0), c
LINE STEP(0, 0)-STEP(0, a), c
LINE STEP(0, 0)-STEP(-p, p), c
LINE (h + l, v)-STEP(p, -p), c

END SUB

