'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'
DECLARE SUB demo ()
DECLARE SUB plaqueta (h!, v!, l!, a!, c!)
DECLARE SUB tornillo (h!, v!)
SCREEN 12
PALETTE 12, 63

CONST an = 2
CONST lc = 2

RANDOMIZE TIMER
DO
   h = INT(RND * (64 / lc) + 1)
   v = INT(RND * (48 / lc) + 1)
   l = INT(RND * (16 / lc) + 1)
   a = INT(RND * (12 / lc) + 1)
   c = INT(RND * 14) + 1
   IF c = 8 THEN : c = INT(RND * 6) + 9
   plaqueta h - 1, v - 1, l, a, c

   FOR n = 1 TO (INT(RND * 10)) / lc
      h = INT(RND * (64 / lc) + 1)
      v = INT(RND * (48 / lc) + 1)
      tornillo h, v
   NEXT
LOOP WHILE INKEY$ = ""

CLS

demo

'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'                       DIBUJA FIGURA CON PIEZAS DEL MECANO Y TORNILLOS
SUB demo
plaqueta 2, 2, 30, 1, 1
plaqueta 2, 2, 1, 22, 4
plaqueta 2, 23, 30, 1, 1
plaqueta 31, 2, 1, 22, 4
plaqueta 30, 2, 2, 1, 1
plaqueta 10, 2, 14, 4, 14
plaqueta 11, 5, 1, 19, 2
plaqueta 22, 5, 1, 19, 2
plaqueta 14, 3, 6, 7, 6
plaqueta 13, 5, 8, 3, 9
plaqueta 7, 15, 20, 1, 13
plaqueta 15, 7, 1, 9, 12
plaqueta 18, 7, 1, 9, 12
plaqueta 5, 14, 3, 3, 11
plaqueta 26, 14, 3, 3, 11
plaqueta 2, 9, 10, 1, 5
plaqueta 22, 9, 10, 1, 5
plaqueta 6, 9, 1, 11, 7
plaqueta 27, 9, 1, 11, 7
plaqueta 6, 19, 10, 1, 10
plaqueta 18, 19, 10, 1, 10
plaqueta 15, 19, 4, 5, 15
plaqueta 14, 11, 6, 1, 3

FOR n = 10 TO 23
   tornillo n, 2
NEXT
FOR n = 13 TO 20
   tornillo n, 5
NEXT
FOR n = 15 TO 18
   tornillo n, 19
   tornillo n, 23
NEXT
FOR v = 14 TO 16
   tornillo 6, v
   tornillo 27, v
NEXT

tornillo 2, 2
tornillo 31, 2
tornillo 2, 23
tornillo 31, 23
tornillo 6, 19
tornillo 27, 19
tornillo 7, 15
tornillo 26, 15
tornillo 15, 15
tornillo 18, 15
tornillo 15, 7
tornillo 18, 7
tornillo 11, 5
tornillo 22, 5
tornillo 11, 15
tornillo 22, 15
tornillo 11, 19
tornillo 22, 19
tornillo 11, 23
tornillo 22, 23
tornillo 2, 9
tornillo 6, 9
tornillo 11, 9
tornillo 22, 9
tornillo 27, 9
tornillo 31, 9
tornillo 15, 11
tornillo 18, 11
END SUB

'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'                                               DIBUJA PIEZA DEL MECANO
'
'                                       hhh y vvv ... posicion
'                                       l y a ....... largo y ancho
'                                       c ........... color
SUB plaqueta (hhh, vvv, l, a, c)
CONST pi = 3.141592654#
h = (hhh * (10 * lc)) - (5 * an)
v = (vvv * (10 * lc)) - (5 * an)
l = l * (10 * lc) - (10 * lc)
a = a * (10 * lc) - (10 * lc)
CIRCLE (h, v), (5 * an), c, pi / 2, pi, 1
CIRCLE (h, v + a), (5 * an), c, pi, pi * 1.5, 1
CIRCLE (h + l, v + a), (5 * an), c, pi * 1.5, pi * 2, 1
CIRCLE (h + l, v), (5 * an), c, pi * 2, pi / 2, 1
LINE (h - (5 * an), v)-(h + l + (5 * an), v + a), c, BF
LINE (h, v - (5 * an))-(h + l, v + a + (5 * an)), c, BF
PAINT (h - 1, v - 1), c, c
PAINT (h - 1, v + a + 1), c, c
PAINT (h + l + 1, v + a + 1), c, c
PAINT (h + l + 1, v - 1), c, c
FOR hh = h TO h + l STEP (10 * lc)
FOR vv = v TO v + a STEP (10 * lc)
CIRCLE (hh, vv), (2 * an), 0, , , 1
PAINT (hh, vv), 0, 0
NEXT
NEXT
END SUB

'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'                                          DIBUJA CABEZA DE UN TORNILLO
SUB tornillo (h, v)
hh = h * (10 * lc) - (5 * an)
vv = v * (10 * lc) - (5 * an)
CIRCLE (hh, vv), (3 * an), 8, , , 1
PAINT (hh, vv), 7, 8
PSET (hh, vv)
LINE (hh - (2 * an), vv + (2 * an))-(hh + (2 * an), vv - (2 * an)), 8
LINE (hh - (2 * an) - 1, vv + (2 * an))-(hh + (2 * an), vv - (2 * an) - 1), 8
LINE (hh - (2 * an), vv + (2 * an) + 1)-(hh + (2 * an) + 1, vv - (2 * an)), 8
END SUB

