home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / msdos / raytrace / pov / gen / swarm / swarm.bas < prev    next >
Encoding:
BASIC Source File  |  1992-11-23  |  4.6 KB  |  199 lines

  1. OPEN "swarm.pi" FOR OUTPUT AS #1
  2.  
  3. PRINT #1, "#"
  4. PRINT #1, "# SWARM.PI"
  5. PRINT #1, "#"
  6. PRINT #1, "# Polyray input file - Jeff Bowermaster"
  7. PRINT #1, "# 8/31/92"
  8. PRINT #1, "# Modified 11/20/92"
  9. PRINT #1,
  10. PRINT #1, "# Define the range of the animation"
  11. PRINT #1,
  12. PRINT #1, "start_frame     0"
  13. PRINT #1, "end_frame    3500"
  14. PRINT #1, "total_frames 3501"
  15. PRINT #1, "outfile "; CHR$(34); "swrm"; CHR$(34)
  16. PRINT #1,
  17. PRINT #1, "define min 2.0"
  18. PRINT #1, "define str 4.0"
  19. PRINT #1, "define radius 15.0"
  20. PRINT #1, "define u 20"
  21. PRINT #1, "define v 20"
  22. PRINT #1,
  23. PRINT #1, "# Set up the camera"
  24. PRINT #1, "viewpoint {"
  25. PRINT #1, "   from <0,100,-225>"
  26. PRINT #1, "   at <0,0,0>"
  27. PRINT #1, "   up <0,1,0>"
  28. PRINT #1, "   angle 45"
  29. PRINT #1, "   resolution 160,120"
  30. PRINT #1, "   aspect 1.333"
  31. PRINT #1, "   }"
  32. PRINT #1,
  33. PRINT #1, "# Set up background color & lights"
  34. PRINT #1, "background skyblue"
  35. PRINT #1, "light  < 220,240,-800>"
  36. PRINT #1, "light  < 420,240,-800>"
  37. PRINT #1,
  38. PRINT #1, "include "; CHR$(34); "colors.inc"; CHR$(34)
  39. PRINT #1,
  40. PRINT #1, "define ampl 45"
  41. PRINT #1,
  42.  
  43. FOR x = 0 TO 4
  44.   count$ = RIGHT$("00" + LTRIM$(STR$(x)), 2)
  45.   var$ = "define a" + count$
  46.   PRINT #1, var$; " (frame+"; x; ")/33.333333"
  47. NEXT x
  48.  
  49. PRINT #1,
  50.  
  51. FOR x = 0 TO 59
  52.   count$ = RIGHT$("00" + LTRIM$(STR$(x)), 2)
  53.   var$ = "define b" + count$
  54.   PRINT #1, var$;
  55.   PRINT #1, USING " #.## "; 1.5 + x / 33.333333#
  56. NEXT x
  57.  
  58. PRINT #1,
  59.  
  60. FOR y = 0 TO 4
  61. FOR x = 0 TO 59
  62.    counta$ = RIGHT$("00" + LTRIM$(STR$(y)), 2)
  63.    countb$ = RIGHT$("00" + LTRIM$(STR$(x)), 2)
  64.    countc$ = counta$ + countb$
  65.  
  66. PRINT #1, USING "define a a\\"; counta$
  67. PRINT #1, USING "define b b\\"; countb$
  68.  
  69. PRINT #1, "define csab  cos(a*b)"
  70. PRINT #1, "define csapb cos(a+b)"
  71. PRINT #1, "define snab  sin(a*b)"
  72. PRINT #1, "define snapb sin(a+b)"
  73.  
  74. PRINT #1, USING "define Vx\  \ sin(a*0.1)*snapb*ampl*csab+cos(a*0.1)*(csapb*ampl*b*csab+sin(a*0.05)*(ampl*(csab+2.0*snapb)))"; countc$
  75. PRINT #1, USING "define Vy\  \ sin(a*0.1)*csapb*ampl*csab+cos(a*0.1)*(csapb*ampl*b*snab+sin(a*0.05)*(ampl*(csab+2.0*csapb)))"; countc$
  76. PRINT #1, USING "define Vz\  \ cos(a*0.1)*csapb*ampl*csab+cos(a*0.1)*(snapb*ampl*b*snab+sin(a*0.05)*(ampl*(snab+2.0*snapb)))"; countc$
  77. PRINT #1,
  78. NEXT x
  79. NEXT y
  80.  
  81.  
  82. FOR x = 0 TO 59
  83.  
  84.    READ clr$
  85.  
  86.    PRINT #1, "object {"
  87.    PRINT #1, "   blob min:"
  88.  
  89.    FOR y = 0 TO 3
  90.  
  91.       counta$ = RIGHT$("00" + LTRIM$(STR$(y)), 2)
  92.       countb$ = RIGHT$("00" + LTRIM$(STR$(x)), 2)
  93.       countc$ = counta$ + countb$
  94.  
  95.       Vx$ = "< Vx" + countc$ + ", "
  96.       Vy$ = " Vy" + countc$ + ", "
  97.       Vz$ = " Vz" + countc$ + " >"
  98.  
  99.       V$ = Vx$ + Vy$ + Vz$
  100.       PRINT #1, USING "      str, radius, \                          \,"; V$
  101.    NEXT y
  102.  
  103.    counta$ = "04"
  104.    countb$ = RIGHT$("00" + LTRIM$(STR$(x)), 2)
  105.    countc$ = counta$ + countb$
  106.  
  107.    Vx$ = "< Vx" + countc$ + ", "
  108.    Vy$ = " Vy" + countc$ + ", "
  109.    Vz$ = " Vz" + countc$ + " >"
  110.  
  111.    V$ = Vx$ + Vy$ + Vz$
  112.  
  113.    PRINT #1, USING "      str, radius, \                          \"; V$
  114.    PRINT #1, "   u_steps 20"
  115.    PRINT #1, "   v_steps 20"
  116.    PRINT #1, "   texture {"
  117.    PRINT #1, "      surface {"
  118.    PRINT #1, "        ambient "; clr$; ", 0.2"
  119.    PRINT #1, "        diffuse "; clr$; ", 0.5"
  120.    PRINT #1, "        specular white, 0.7"
  121.    PRINT #1, "      }"
  122.    PRINT #1, "      rotate <0,0,0>"
  123.    PRINT #1, "   }"
  124.    PRINT #1, "}"
  125.    PRINT #1,
  126. NEXT x
  127.  
  128. CLOSE #1
  129.  
  130. kolors:
  131.  
  132. DATA "Aquamarine"
  133. DATA "BlueViolet"
  134. DATA "Brown"
  135. DATA "CadetBlue"
  136. DATA "Coral"
  137. DATA "CornflowerBlue"
  138. DATA "DarkGreen"
  139. DATA "DarkOliveGreen"
  140. DATA "DarkOrchid"
  141. DATA "DarkSlateBlue"
  142. DATA "DarkSlateGray"
  143. DATA "DarkSlateGrey"
  144. DATA "DarkTurquoise"
  145. DATA "DimGray"
  146. DATA "DimGrey"
  147. DATA "Firebrick"
  148. DATA "ForestGreen"
  149. DATA "Gold"
  150. DATA "Goldenrod"
  151. DATA "Gray"
  152. DATA "GreenYellow"
  153. DATA "Grey"
  154. DATA "IndianRed"
  155. DATA "Khaki"
  156. DATA "LightBlue"
  157. DATA "LightGray"
  158. DATA "LightGrey"
  159. DATA "LightSteelBlue"
  160. DATA "LimeGreen"
  161. DATA "Maroon"
  162. DATA "MediumAquamarine"
  163. DATA "MediumBlue"
  164. DATA "MediumForestGreen"
  165. DATA "MediumGoldenrod"
  166. DATA "MediumOrchid"
  167. DATA "MediumSeaGreen"
  168. DATA "MediumSlateBlue"
  169. DATA "MediumSpringGreen"
  170. DATA "MediumTurquoise"
  171. DATA "MediumVioletRed"
  172. DATA "MidnightBlue"
  173. DATA "Navy"
  174. DATA "NavyBlue"
  175. DATA "Orange"
  176. DATA "OrangeRed"
  177. DATA "Orchid"
  178. DATA "PaleGreen"
  179. DATA "Pink"
  180. DATA "Plum"
  181. DATA "Red"
  182. DATA "Salmon"
  183. DATA "SeaGreen"
  184. DATA "Sienna"
  185. DATA "SkyBlue"
  186. DATA "SlateBlue"
  187. DATA "SpringGreen"
  188. DATA "SteelBlue"
  189. DATA "Tan"
  190. DATA "Thistle"
  191. DATA "Turquoise"
  192. DATA "Violet"
  193. DATA "VioletRed"
  194. DATA "Wheat"
  195. DATA "White"
  196. DATA "Yellow"
  197. DATA "YellowGreen"
  198.  
  199.