255 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			255 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Factor
		
	
	
|  | 
 | ||
|  | USING: kernel namespaces sequences springies springies.ui ;
 | ||
|  | 
 | ||
|  | IN: springies.models.ball | ||
|  | 
 | ||
|  | : model ( -- )
 | ||
|  | 
 | ||
|  | { } clone >nodes | ||
|  | { } clone >springs | ||
|  | 0.01 >time-slice | ||
|  | gravity on
 | ||
|  | 
 | ||
|  | 1 325.191871 140.872641 40.832215 -5.301529 1.0 1.0 mass | ||
|  | 2 313.933994 149.011616 55.240875 5.026852 1.0 1.0 mass | ||
|  | 3 309.133386 162.523019 72.798059 5.594199 1.0 1.0 mass | ||
|  | 4 312.887152 176.436760 83.754277 -1.370025 1.0 1.0 mass | ||
|  | 5 321.660596 187.895952 91.634021 -8.308630 1.0 1.0 mass | ||
|  | 6 335.256132 192.503856 94.772924 -18.985044 1.0 1.0 mass | ||
|  | 7 348.254504 188.731936 92.657963 -29.982110 1.0 1.0 mass | ||
|  | 8 359.050972 180.780059 86.668616 -39.817638 1.0 1.0 mass | ||
|  | 9 363.685639 167.752177 76.554871 -47.987107 1.0 1.0 mass | ||
|  | 10 360.449954 154.092353 57.992242 -48.045772 1.0 1.0 mass | ||
|  | 11 352.201411 142.382665 41.200547 -39.924209 1.0 1.0 mass | ||
|  | 12 338.754859 137.460615 32.306364 -22.707784 1.0 1.0 mass | ||
|  | 13 312.911184 114.835962 8.342965 5.878311 1.0 1.0 mass | ||
|  | 14 290.521818 132.872407 33.212103 28.391710 1.0 1.0 mass | ||
|  | 15 281.048450 160.314206 66.319674 32.935324 1.0 1.0 mass | ||
|  | 16 287.450075 188.730522 93.898071 21.966741 1.0 1.0 mass | ||
|  | 17 305.987715 211.206959 112.571044 5.089593 1.0 1.0 mass | ||
|  | 18 333.289699 220.830317 121.166705 -17.204713 1.0 1.0 mass | ||
|  | 19 361.089678 214.901909 117.183695 -41.776506 1.0 1.0 mass | ||
|  | 20 382.690515 197.005784 101.789802 -63.980298 1.0 1.0 mass | ||
|  | 21 392.095364 170.108402 75.453780 -78.414351 1.0 1.0 mass | ||
|  | 22 386.286391 142.033621 41.812216 -77.402424 1.0 1.0 mass | ||
|  | 23 368.355658 119.326317 12.658676 -58.885262 1.0 1.0 mass | ||
|  | 24 341.159901 109.253775 -0.645459 -27.346079 1.0 1.0 mass | ||
|  | 25 300.792976 88.652764 -23.770230 17.788258 1.0 1.0 mass | ||
|  | 26 266.917041 116.942125 11.387083 52.603190 1.0 1.0 mass | ||
|  | 27 252.824303 157.992984 59.144863 62.163730 1.0 1.0 mass | ||
|  | 28 261.812599 201.245775 103.542171 47.141708 1.0 1.0 mass | ||
|  | 29 290.323965 234.792944 133.016945 18.136362 1.0 1.0 mass | ||
|  | 30 330.805232 249.331769 145.899409 -16.478401 1.0 1.0 mass | ||
|  | 31 373.715232 241.181453 141.068680 -55.103677 1.0 1.0 mass | ||
|  | 32 406.314817 213.217096 116.087430 -90.844012 1.0 1.0 mass | ||
|  | 33 420.647493 172.661774 73.304028 -110.880720 1.0 1.0 mass | ||
|  | 34 412.375908 129.697207 24.072484 -106.129512 1.0 1.0 mass | ||
|  | 35 384.555754 95.915740 -16.565355 -77.142380 1.0 1.0 mass | ||
|  | 36 344.134757 80.886540 -34.250916 -30.871105 1.0 1.0 mass | ||
|  | 37 288.774590 62.672780 -55.431084 28.821437 1.0 1.0 mass | ||
|  | 38 244.055965 100.457489 -9.756397 76.701354 1.0 1.0 mass | ||
|  | 39 224.574635 156.693148 53.845562 91.755892 1.0 1.0 mass | ||
|  | 40 235.856891 213.935639 112.462316 73.437061 1.0 1.0 mass | ||
|  | 41 273.697931 257.991035 152.320671 33.701056 1.0 1.0 mass | ||
|  | 42 329.129445 277.782400 170.727571 -15.899371 1.0 1.0 mass | ||
|  | 43 386.065290 267.474982 165.436658 -68.761273 1.0 1.0 mass | ||
|  | 44 429.946314 229.605765 132.087682 -116.795195 1.0 1.0 mass | ||
|  | 45 449.164590 174.189613 73.084826 -143.228528 1.0 1.0 mass | ||
|  | 46 438.674101 117.351918 9.340834 -136.225613 1.0 1.0 mass | ||
|  | 47 401.586435 72.955570 -42.523445 -98.317857 1.0 1.0 mass | ||
|  | 48 346.207804 52.561279 -67.447974 -34.980297 1.0 1.0 mass | ||
|  | 1 1 2 150.0 2.0 14.0 spng | ||
|  | 2 2 3 150.0 2.0 14.0 spng | ||
|  | 3 3 4 150.0 2.0 14.0 spng | ||
|  | 4 4 5 150.0 2.0 14.0 spng | ||
|  | 5 5 6 150.0 2.0 14.0 spng | ||
|  | 6 6 7 150.0 2.0 14.0 spng | ||
|  | 7 7 8 150.0 2.0 14.0 spng | ||
|  | 8 8 9 150.0 2.0 14.0 spng | ||
|  | 9 9 10 150.0 2.0 14.0 spng | ||
|  | 10 10 11 150.0 2.0 14.0 spng | ||
|  | 11 11 12 150.0 2.0 14.0 spng | ||
|  | 12 12 1 150.0 2.0 14.0 spng | ||
|  | 13 13 14 150.0 2.0 28.0 spng | ||
|  | 14 14 15 150.0 2.0 28.0 spng | ||
|  | 15 15 16 150.0 2.0 28.0 spng | ||
|  | 16 16 17 150.0 2.0 28.0 spng | ||
|  | 17 17 18 150.0 2.0 28.0 spng | ||
|  | 18 18 19 150.0 2.0 28.0 spng | ||
|  | 19 19 20 150.0 2.0 28.0 spng | ||
|  | 20 20 21 150.0 2.0 28.0 spng | ||
|  | 21 21 22 150.0 2.0 28.0 spng | ||
|  | 22 22 23 150.0 2.0 28.0 spng | ||
|  | 23 23 24 150.0 2.0 28.0 spng | ||
|  | 24 24 13 150.0 2.0 28.0 spng | ||
|  | 25 25 26 150.0 2.0 44.0 spng | ||
|  | 26 26 27 150.0 2.0 43.0 spng | ||
|  | 27 27 28 150.0 2.0 44.0 spng | ||
|  | 28 28 29 150.0 2.0 44.0 spng | ||
|  | 29 29 30 150.0 2.0 43.0 spng | ||
|  | 30 30 31 150.0 2.0 44.0 spng | ||
|  | 31 31 32 150.0 2.0 43.0 spng | ||
|  | 32 32 33 150.0 2.0 43.0 spng | ||
|  | 33 33 34 150.0 2.0 44.0 spng | ||
|  | 34 34 35 150.0 2.0 44.0 spng | ||
|  | 35 35 36 150.0 2.0 43.0 spng | ||
|  | 36 36 25 150.0 2.0 44.0 spng | ||
|  | 37 37 38 150.0 2.0 58.0 spng | ||
|  | 38 38 39 150.0 2.0 59.0 spng | ||
|  | 39 39 40 150.0 2.0 58.0 spng | ||
|  | 40 40 41 150.0 2.0 58.0 spng | ||
|  | 41 41 42 150.0 2.0 59.0 spng | ||
|  | 42 42 43 150.0 2.0 58.0 spng | ||
|  | 43 43 44 150.0 2.0 58.0 spng | ||
|  | 44 44 45 150.0 2.0 59.0 spng | ||
|  | 45 45 46 150.0 2.0 58.0 spng | ||
|  | 46 46 47 150.0 2.0 58.0 spng | ||
|  | 47 47 48 150.0 2.0 59.0 spng | ||
|  | 48 48 37 150.0 2.0 58.0 spng | ||
|  | 49 1 13 150.0 2.0 29.0 spng | ||
|  | 50 2 14 150.0 2.0 28.0 spng | ||
|  | 51 3 15 150.0 2.0 28.0 spng | ||
|  | 52 4 16 150.0 2.0 29.0 spng | ||
|  | 53 5 17 150.0 2.0 28.0 spng | ||
|  | 54 6 18 150.0 2.0 28.0 spng | ||
|  | 55 7 19 150.0 2.0 29.0 spng | ||
|  | 56 8 20 150.0 2.0 28.0 spng | ||
|  | 57 9 21 150.0 2.0 28.0 spng | ||
|  | 58 10 22 150.0 2.0 29.0 spng | ||
|  | 59 11 23 150.0 2.0 28.0 spng | ||
|  | 60 12 24 150.0 2.0 28.0 spng | ||
|  | 61 13 25 150.0 2.0 29.0 spng | ||
|  | 62 14 26 150.0 2.0 28.0 spng | ||
|  | 63 15 27 150.0 2.0 28.0 spng | ||
|  | 64 16 28 150.0 2.0 29.0 spng | ||
|  | 65 17 29 150.0 2.0 28.0 spng | ||
|  | 66 18 30 150.0 2.0 28.0 spng | ||
|  | 67 19 31 150.0 2.0 29.0 spng | ||
|  | 68 20 32 150.0 2.0 28.0 spng | ||
|  | 69 21 33 150.0 2.0 28.0 spng | ||
|  | 70 22 34 150.0 2.0 29.0 spng | ||
|  | 71 23 35 150.0 2.0 28.0 spng | ||
|  | 72 24 36 150.0 2.0 28.0 spng | ||
|  | 73 25 37 150.0 2.0 29.0 spng | ||
|  | 74 26 38 150.0 2.0 28.0 spng | ||
|  | 75 27 39 150.0 2.0 28.0 spng | ||
|  | 76 28 40 150.0 2.0 29.0 spng | ||
|  | 77 29 41 150.0 2.0 28.0 spng | ||
|  | 78 30 42 150.0 2.0 28.0 spng | ||
|  | 79 31 43 150.0 2.0 29.0 spng | ||
|  | 80 32 44 150.0 2.0 28.0 spng | ||
|  | 81 33 45 150.0 2.0 28.0 spng | ||
|  | 82 34 46 150.0 2.0 29.0 spng | ||
|  | 83 35 47 150.0 2.0 28.0 spng | ||
|  | 84 36 48 150.0 2.0 28.0 spng | ||
|  | 85 1 14 150.0 2.0 35.0 spng | ||
|  | 86 2 15 150.0 2.0 35.0 spng | ||
|  | 87 3 16 150.0 2.0 34.0 spng | ||
|  | 88 4 17 150.0 2.0 35.0 spng | ||
|  | 89 5 18 150.0 2.0 35.0 spng | ||
|  | 90 6 19 150.0 2.0 34.0 spng | ||
|  | 91 7 20 150.0 2.0 35.0 spng | ||
|  | 92 8 21 150.0 2.0 35.0 spng | ||
|  | 93 9 22 150.0 2.0 34.0 spng | ||
|  | 94 10 23 150.0 2.0 35.0 spng | ||
|  | 95 11 24 150.0 2.0 35.0 spng | ||
|  | 96 12 13 150.0 2.0 34.0 spng | ||
|  | 97 13 26 150.0 2.0 46.0 spng | ||
|  | 98 14 27 150.0 2.0 45.0 spng | ||
|  | 99 15 28 150.0 2.0 45.0 spng | ||
|  | 100 16 29 150.0 2.0 46.0 spng | ||
|  | 101 17 30 150.0 2.0 45.0 spng | ||
|  | 102 18 31 150.0 2.0 45.0 spng | ||
|  | 103 19 32 150.0 2.0 45.0 spng | ||
|  | 104 20 33 150.0 2.0 45.0 spng | ||
|  | 105 21 34 150.0 2.0 45.0 spng | ||
|  | 106 22 35 150.0 2.0 46.0 spng | ||
|  | 107 23 36 150.0 2.0 45.0 spng | ||
|  | 108 24 25 150.0 2.0 45.0 spng | ||
|  | 109 25 38 150.0 2.0 58.0 spng | ||
|  | 110 26 39 150.0 2.0 58.0 spng | ||
|  | 111 27 40 150.0 2.0 58.0 spng | ||
|  | 112 28 41 150.0 2.0 58.0 spng | ||
|  | 113 29 42 150.0 2.0 58.0 spng | ||
|  | 114 30 43 150.0 2.0 58.0 spng | ||
|  | 115 31 44 150.0 2.0 58.0 spng | ||
|  | 116 32 45 150.0 2.0 58.0 spng | ||
|  | 117 33 46 150.0 2.0 58.0 spng | ||
|  | 118 34 47 150.0 2.0 58.0 spng | ||
|  | 119 35 48 150.0 2.0 58.0 spng | ||
|  | 120 36 37 150.0 2.0 58.0 spng | ||
|  | 121 1 24 150.0 2.0 35.0 spng | ||
|  | 122 2 13 150.0 2.0 34.0 spng | ||
|  | 123 3 14 150.0 2.0 35.0 spng | ||
|  | 124 4 15 150.0 2.0 35.0 spng | ||
|  | 125 5 16 150.0 2.0 34.0 spng | ||
|  | 126 6 17 150.0 2.0 35.0 spng | ||
|  | 127 7 18 150.0 2.0 35.0 spng | ||
|  | 128 8 19 150.0 2.0 34.0 spng | ||
|  | 129 9 20 150.0 2.0 35.0 spng | ||
|  | 130 10 21 150.0 2.0 35.0 spng | ||
|  | 131 11 22 150.0 2.0 34.0 spng | ||
|  | 132 12 23 150.0 2.0 35.0 spng | ||
|  | 133 13 36 150.0 2.0 46.0 spng | ||
|  | 134 14 25 150.0 2.0 45.0 spng | ||
|  | 135 15 26 150.0 2.0 45.0 spng | ||
|  | 136 16 27 150.0 2.0 46.0 spng | ||
|  | 137 17 28 150.0 2.0 45.0 spng | ||
|  | 138 18 29 150.0 2.0 45.0 spng | ||
|  | 139 19 30 150.0 2.0 46.0 spng | ||
|  | 140 20 31 150.0 2.0 45.0 spng | ||
|  | 141 21 32 150.0 2.0 45.0 spng | ||
|  | 142 22 33 150.0 2.0 46.0 spng | ||
|  | 143 23 34 150.0 2.0 45.0 spng | ||
|  | 144 24 35 150.0 2.0 45.0 spng | ||
|  | 145 25 48 150.0 2.0 58.0 spng | ||
|  | 146 26 37 150.0 2.0 58.0 spng | ||
|  | 147 27 38 150.0 2.0 58.0 spng | ||
|  | 148 28 39 150.0 2.0 58.0 spng | ||
|  | 149 29 40 150.0 2.0 58.0 spng | ||
|  | 150 30 41 150.0 2.0 58.0 spng | ||
|  | 151 31 42 150.0 2.0 58.0 spng | ||
|  | 152 32 43 150.0 2.0 58.0 spng | ||
|  | 153 33 44 150.0 2.0 58.0 spng | ||
|  | 154 34 45 150.0 2.0 58.0 spng | ||
|  | 155 35 46 150.0 2.0 58.0 spng | ||
|  | 156 36 47 150.0 2.0 58.0 spng | ||
|  | 157 10 4 150.0 2.0 52.331631 spng | ||
|  | 158 7 1 150.0 2.0 52.436772 spng | ||
|  | 159 12 6 150.0 2.0 54.680698 spng | ||
|  | 160 5 11 150.0 2.0 54.589379 spng | ||
|  | 161 9 3 150.0 2.0 54.451569 spng | ||
|  | 162 2 8 150.0 2.0 54.482231 spng | ||
|  | 163 45 11 150.0 2.0 101.408150 spng | ||
|  | 164 46 12 150.0 2.0 101.542452 spng | ||
|  | 165 47 1 150.0 2.0 101.963064 spng | ||
|  | 166 48 2 150.0 2.0 101.517329 spng | ||
|  | 167 37 3 150.0 2.0 101.603694 spng | ||
|  | 168 38 4 150.0 2.0 102.014031 spng | ||
|  | 169 39 5 150.0 2.0 101.547660 spng | ||
|  | 170 40 6 150.0 2.0 101.573762 spng | ||
|  | 171 41 7 150.0 2.0 101.897300 spng | ||
|  | 172 42 8 150.0 2.0 101.497982 spng | ||
|  | 173 43 9 150.0 2.0 101.870594 spng | ||
|  | 174 44 10 150.0 2.0 102.043753 spng | ||
|  | 175 45 11 150.0 2.0 101.408150 spng | ||
|  | 176 46 8 150.0 2.0 101.548938 spng | ||
|  | 177 47 10 150.0 2.0 90.645939 spng | ||
|  | 178 48 10 150.0 2.0 101.952119 spng | ||
|  | 179 37 11 150.0 2.0 101.552352 spng | ||
|  | 180 38 12 150.0 2.0 101.491447 spng | ||
|  | 181 39 1 150.0 2.0 101.971524 spng | ||
|  | 182 40 2 150.0 2.0 101.587400 spng | ||
|  | 183 41 3 150.0 2.0 101.519279 spng | ||
|  | 184 42 4 150.0 2.0 101.976181 spng | ||
|  | 185 43 5 150.0 2.0 101.714570 spng | ||
|  | 186 44 6 150.0 2.0 101.388747 spng | ||
|  | 187 45 7 150.0 2.0 101.773286 spng | ||
|  | 
 | ||
|  | nodes> [ { 0 100 } swap set-node-vel ] each ;
 | ||
|  | 
 | ||
|  | USING: threads ui ;
 | ||
|  | 
 | ||
|  | : go ( -- ) [ [ springies-window* 1000 sleep model ] with-scope ] with-ui ;
 | ||
|  | 
 | ||
|  | MAIN: go |