home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Programa / 3DFIGURE.ZIP / 3DFIGURE.BAS next >
Encoding:
BASIC Source File  |  1996-09-09  |  3.8 KB  |  164 lines

  1. 'This program was created originally to make a box spin around. I have now
  2. 'found out that you can make many different shapes just by changing the
  3. 'values z,z2,z4,z6 and the speed by changing r.You can also change the width
  4. 'just by changing q. Enjoy! :)
  5. RANDOMIZE TIMER
  6. SCREEN 12: CLS
  7.  
  8. Man$ = "False"
  9. Bounce$ = "False"
  10.  
  11. XR = 320: YR = 200: q = 70
  12. z = 100.451
  13. z2 = 101.351
  14. z4 = 101.551
  15. z6 = 100.251
  16. r = .001
  17. R3 = 10
  18. c = 4
  19. c1 = 0
  20. C3 = 2
  21. u = 1
  22. YQ = INT(RND * 15): XQ = INT(RND * 15) + 1
  23. RC = 50: CC = 1
  24. S = 1
  25. LK = .1
  26. RK = .1
  27. LK2 = .1
  28. RK2 = .1
  29.  
  30. WHILE INKEY$ <> CHR$(13)
  31.   
  32. IF Bounce$ <> "True" THEN GOTO nobounce:
  33.    
  34.    IF XR > 530 THEN XQ = -INT(RND * 15) + 1
  35.    IF XR < 120 THEN XQ = INT(RND * 15) + 1
  36.    IF YR > 350 THEN YQ = -INT(RND * 15) + 1
  37.    IF YR < 130 THEN YQ = INT(RND * 15) + 1
  38.      
  39.    XR = XR + XQ
  40.    YR = YR + YQ
  41.  
  42. nobounce:
  43.    LK = 10 / (INT(RND * 10) + 1)
  44.    RK = 10 / (INT(RND * 10) + 1)
  45.    LK2 = 10 / (INT(RND * 10) + 1)
  46.    RK2 = 10 / (INT(RND * 10) + 1)
  47.  
  48.   
  49.   
  50.    a = X: B = Y
  51.    z = z + r
  52.    X = (z * u) * SIN(z / RK) + XR
  53.    Y = (z) * COS(z / LK) + YR - (q / 2)
  54.    a1 = x1: b1 = y1
  55.    'c1 = INT(RND * 16) + 1
  56.    'z = z + .0001
  57.    x1 = (z * u) * SIN(z / RK2) + XR
  58.    y1 = (z) * COS(z / LK2) + YR + (q / 2)
  59.   
  60.    a2 = x2: b2 = y2
  61.    'c2 = INT(RND * 16) + 1
  62.    z2 = z2 + r
  63.    x2 = (z2 * u) * SIN(z2 / RK) + XR
  64.    y2 = (z2) * COS(z2 / LK) + YR - (q / 2)
  65.    a3 = x3: b3 = y3
  66.    'c3 = INT(RND * 16) + 1
  67.    'z3 = z3 + .0001
  68.    x3 = (z2 * u) * SIN(z2 / RK2) + XR
  69.    y3 = (z2) * COS(z2 / LK2) + YR + (q / 2)
  70.  
  71.    a4 = x4: b4 = y4
  72.    'c4 = INT(RND * 16) + 1
  73.    z4 = z4 + r
  74.    x4 = (z4 * u) * SIN(z4 / RK) + XR
  75.    y4 = (z4) * COS(z4 / LK) + YR - (q / 2)
  76.    a5 = x5: b5 = y5
  77.    'c5 = INT(RND * 16) + 1
  78.    'z5 = z5 + .0001
  79.    x5 = (z4 * u) * SIN(z4 / RK2) + XR
  80.    y5 = (z4) * COS(z4 / LK2) + YR + (q / 2)
  81.  
  82.    a6 = x6: b6 = y6
  83.    'c6 = INT(RND * 16) + 1
  84.    z6 = z6 + r
  85.    x6 = (z6 * u) * SIN(z6 / RK) + XR
  86.    y6 = (z6) * COS(z6 / LK) + YR - (q / 2)
  87.    a7 = x7: b7 = y7
  88.    'c7 = INT(RND * 16) + 1
  89.    'z7 = z7 + .0001
  90.    x7 = (z6 * u) * SIN(z6 / RK2) + XR
  91.    y7 = (z6) * COS(z6 / LK2) + YR + (q / 2)
  92.    
  93. '
  94.    LINE (X, Y)-(x1, y1), c
  95.  
  96.    LINE (a, B)-(a1, b1), c1
  97.   
  98.    LINE (X, Y)-(x2, y2), c
  99.    LINE (a, B)-(a2, b2), c1
  100.  
  101.    LINE (x1, y1)-(x3, y3), c
  102.    LINE (a1, b1)-(a3, b3), c1
  103. '
  104.    LINE (x2, y2)-(x3, y3), c
  105.    LINE (a2, b2)-(a3, b3), c1
  106.   
  107.    LINE (x3, y3)-(x5, y5), c
  108.    LINE (a3, b3)-(a5, b5), c1
  109.   
  110.    LINE (x2, y2)-(x4, y4), c
  111.    LINE (a2, b2)-(a4, b4), c1
  112. '
  113.    LINE (x4, y4)-(x5, y5), c
  114.    LINE (a4, b4)-(a5, b5), c1
  115.   
  116.    LINE (x4, y4)-(x6, y6), c
  117.    LINE (a4, b4)-(a6, b6), c1
  118.  
  119.    LINE (x5, y5)-(x7, y7), c
  120.    LINE (a5, b5)-(a7, b7), c1
  121. '
  122.    LINE (x6, y6)-(x7, y7), c
  123.    LINE (a6, b6)-(a7, b7), c1
  124.    
  125.    LINE (x6, y6)-(X, Y), c
  126.    LINE (a6, b6)-(a, B), c1
  127.                                                               
  128.    LINE (x7, y7)-(x1, y1), c
  129.    LINE (a7, b7)-(a1, b1), c1
  130.  
  131.    'LOCATE 1, 1: PRINT z
  132.    'LOCATE 2, 1: PRINT z2
  133.    'LOCATE 3, 1: PRINT z4
  134.    'LOCATE 4, 1: PRINT z6
  135.   
  136. IF Man$ <> "True" THEN GOTO noman
  137.  
  138.    'CIRCLE (AR, BR), RC, 0, , , 5
  139.    'CIRCLE (AR, BR), RC, 0, , , .2
  140.    CIRCLE (AR, BR), RC, 0
  141.    LINE (AR, BR + 10)-(AR, BR - 20), 0
  142.    LINE (AR, BR - 10)-(AR - 10, BR - 15), 0
  143.    LINE (AR, BR - 10)-(AR + 10, BR - 15), 0
  144.    LINE (AR, BR + 10)-(AR - 10, BR + 30), 0
  145.    LINE (AR, BR + 10)-(AR + 10, BR + 30), 0
  146.    CIRCLE (AR, BR - 30), R3, 0
  147.   
  148.    AR = XR: BR = YR
  149.    'CIRCLE (XR, YR), RC, CC, , , 5
  150.    'CIRCLE (XR, YR), RC, CC, , , .2
  151.    CIRCLE (XR, YR), RC, CC
  152.    LINE (XR, YR + 10)-(XR, YR - 20), C3
  153.    LINE (XR, YR - 10)-(XR - 10, YR - 15), C3
  154.    LINE (XR, YR - 10)-(XR + 10, YR - 15), C3
  155.    LINE (XR, YR + 10)-(XR - 10, YR + 30), C3
  156.    LINE (XR, YR + 10)-(XR + 10, YR + 30), C3
  157.    CIRCLE (XR, YR - 30), R3, C3
  158.  
  159. noman:
  160.  
  161.  
  162. WEND
  163.  
  164.