Advertisement
here2share

# rotating_teapot.py

Oct 16th, 2022
2,044
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 38.18 KB | None | 0 0
  1. # rotating_teapot.py zzz
  2.  
  3. # form: vertexes = [ (x, y, z), (x, y, z), ... ]
  4. #       triangles = [ ( (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) ), # first triangle
  5. #                 ( (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) ), # second triangle
  6. #  
  7.  
  8. vertexes = []
  9. triangles = []
  10.  
  11. # Mostly found by experiment.
  12.  
  13.  
  14. # ----------------------------- Read the .obj file -------------------------------
  15.  
  16. # Read the .obj file.  
  17.  
  18. # This won't work for complex .obj files, but the one we are going to read has only
  19. # two kinds of line.  The v lines indicates verexes or 3-space points.  
  20. # The f for faces indicate triangles, specifying the vertex index, aparently
  21. # starting at one.
  22.  
  23. teapot = '''
  24. v 0.236255 0.200440 0.120846
  25. v 0.264468 0.183996 0.000008
  26. v 0.240272 0.183996 0.122556
  27. v 0.260121 0.200440 0.000008
  28. v 0.240915 0.205932 0.122839
  29. v 0.265158 0.205932 0.000008
  30. v 0.250408 0.200440 0.126856
  31. v 0.275436 0.200440 0.000008
  32. v 0.260843 0.183996 0.131296
  33. v 0.286781 0.183996 0.000008
  34. v 0.170838 0.200440 0.218587
  35. v 0.173929 0.183996 0.221678
  36. v 0.174416 0.205932 0.222164
  37. v 0.181712 0.200440 0.229476
  38. v 0.189762 0.183996 0.237510
  39. v 0.073097 0.200440 0.284019
  40. v 0.074808 0.183996 0.288020
  41. v 0.075090 0.205932 0.288664
  42. v 0.079107 0.200440 0.298157
  43. v 0.083548 0.183996 0.308591
  44. v -0.047756 0.200440 0.307870
  45. v -0.047756 0.183996 0.312216
  46. v -0.047756 0.205932 0.312938
  47. v -0.047756 0.200440 0.323216
  48. v -0.047756 0.183996 0.334529
  49. v -0.172141 0.200440 0.284019
  50. v -0.178762 0.183996 0.288020
  51. v -0.171623 0.205932 0.288664
  52. v -0.174730 0.200440 0.298157
  53. v -0.179045 0.183996 0.308591
  54. v -0.269505 0.200440 0.218587
  55. v -0.276958 0.183996 0.221678
  56. v -0.270870 0.205932 0.222164
  57. v -0.277334 0.200440 0.229476
  58. v -0.285259 0.183996 0.237510
  59. v -0.332944 0.200440 0.120846
  60. v -0.338577 0.183996 0.122556
  61. v -0.336773 0.205932 0.122839
  62. v -0.345937 0.200440 0.126856
  63. v -0.356340 0.183996 0.131296
  64. v -0.355602 0.200440 0.000008
  65. v -0.359964 0.183996 0.000008
  66. v -0.360655 0.205932 0.000008
  67. v -0.370933 0.200440 0.000008
  68. v -0.382277 0.183996 0.000008
  69. v -0.331752 0.200440 -0.120830
  70. v -0.335769 0.183996 -0.122525
  71. v -0.336412 0.205932 -0.122807
  72. v -0.345905 0.200440 -0.126856
  73. v -0.356340 0.183996 -0.131296
  74. v -0.266335 0.200440 -0.218587
  75. v -0.269426 0.183996 -0.221678
  76. v -0.269913 0.205932 -0.222164
  77. v -0.277209 0.200440 -0.229461
  78. v -0.285259 0.183996 -0.237510
  79. v -0.168579 0.200440 -0.283988
  80. v -0.170305 0.183996 -0.288020
  81. v -0.170571 0.205932 -0.288664
  82. v -0.174604 0.200440 -0.298157
  83. v -0.179045 0.183996 -0.308591
  84. v -0.047756 0.200440 -0.307854
  85. v -0.047756 0.183996 -0.312216
  86. v -0.047756 0.205932 -0.312906
  87. v -0.047756 0.200440 -0.323184
  88. v -0.047756 0.183996 -0.334529
  89. v 0.073097 0.200440 -0.283988
  90. v 0.074808 0.183996 -0.288020
  91. v 0.075090 0.205932 -0.288664
  92. v 0.079107 0.200440 -0.298157
  93. v 0.083548 0.183996 -0.308591
  94. v 0.170838 0.200440 -0.218587
  95. v 0.173929 0.183996 -0.221678
  96. v 0.174416 0.205932 -0.222164
  97. v 0.181712 0.200440 -0.229461
  98. v 0.189762 0.183996 -0.237510
  99. v 0.236255 0.200440 -0.120830
  100. v 0.240272 0.183996 -0.122525
  101. v 0.240915 0.205932 -0.122807
  102. v 0.250408 0.200440 -0.126856
  103. v 0.260843 0.183996 -0.131296
  104. v 0.298612 0.096423 0.147380
  105. v 0.327735 0.096423 0.000008
  106. v 0.331563 0.010451 0.161408
  107. v 0.363448 0.010451 0.000008
  108. v 0.354880 -0.072399 0.171309
  109. v 0.370870 -0.072399 0.090326
  110. v 0.369599 -0.066483 0.087643
  111. v 0.366743 -0.052377 0.080331
  112. v 0.371356 -0.032324 0.025977
  113. v 0.373851 -0.023693 0.000008
  114. v 0.372235 -0.110623 0.107100
  115. v 0.363714 -0.150541 0.175075
  116. v 0.373977 -0.118484 0.103240
  117. v 0.375404 -0.125027 0.100024
  118. v 0.381006 -0.150541 0.087533
  119. v 0.218837 0.096423 0.266586
  120. v 0.244195 0.010451 0.291943
  121. v 0.262130 -0.072399 0.309878
  122. v 0.268940 -0.150541 0.316688
  123. v 0.099631 0.096423 0.346376
  124. v 0.113659 0.010451 0.379312
  125. v 0.123560 -0.072399 0.402629
  126. v 0.127311 -0.150541 0.411463
  127. v -0.047756 0.096423 0.375483
  128. v -0.047756 0.010451 0.411196
  129. v -0.047756 -0.072399 0.436443
  130. v -0.047756 -0.150541 0.446031
  131. v -0.195112 0.096423 0.346376
  132. v -0.209140 0.010451 0.379312
  133. v -0.219057 -0.072399 0.402629
  134. v -0.222807 -0.150541 0.411463
  135. v -0.314334 0.096423 0.266586
  136. v -0.339676 0.010451 0.291943
  137. v -0.357626 -0.072399 0.309878
  138. v -0.364421 -0.150541 0.316688
  139. v -0.394109 0.096423 0.147380
  140. v -0.427060 0.010451 0.161408
  141. v -0.450377 -0.072399 0.171309
  142. v -0.459211 -0.150541 0.175075
  143. v -0.398000 0.150354 0.000008
  144. v -0.394422 0.143073 0.035360
  145. v -0.394187 0.142602 0.037651
  146. v -0.398785 0.128402 0.047960
  147. v -0.419858 0.101350 0.005374
  148. v -0.421443 0.100236 0.000008
  149. v -0.423216 0.096423 0.000008
  150. v -0.418995 0.101962 0.008308
  151. v -0.410318 0.108113 0.037651
  152. v -0.409564 0.109337 0.038545
  153. v -0.399773 0.125373 0.050173
  154. v -0.399522 0.126158 0.049592
  155. v -0.458929 0.010451 0.000008
  156. v -0.484192 -0.072399 0.000008
  157. v -0.493779 -0.150541 0.000008
  158. v -0.394109 0.096423 -0.147364
  159. v -0.411385 0.107360 -0.034026
  160. v -0.410318 0.108113 -0.037620
  161. v -0.400385 0.124369 -0.049435
  162. v -0.399773 0.125373 -0.050173
  163. v -0.394548 0.141472 -0.038451
  164. v -0.394187 0.142602 -0.037620
  165. v -0.397592 0.149538 -0.004009
  166. v -0.427060 0.010451 -0.161376
  167. v -0.450377 -0.072399 -0.171309
  168. v -0.459211 -0.150541 -0.175059
  169. v -0.314334 0.096423 -0.266570
  170. v -0.339676 0.010451 -0.291927
  171. v -0.357626 -0.072399 -0.309878
  172. v -0.364421 -0.150541 -0.316672
  173. v -0.195112 0.096423 -0.346360
  174. v -0.209140 0.010451 -0.379312
  175. v -0.219057 -0.072399 -0.402613
  176. v -0.222807 -0.150541 -0.411463
  177. v -0.047756 0.096423 -0.375452
  178. v -0.047756 0.010451 -0.411181
  179. v -0.047756 -0.072399 -0.436443
  180. v -0.047756 -0.150541 -0.446031
  181. v 0.099631 0.096423 -0.346360
  182. v 0.113659 0.010451 -0.379312
  183. v 0.123560 -0.072399 -0.402613
  184. v 0.127311 -0.150541 -0.411463
  185. v 0.218837 0.096423 -0.266570
  186. v 0.244195 0.010451 -0.291927
  187. v 0.262130 -0.072399 -0.309878
  188. v 0.268940 -0.150541 -0.316672
  189. v 0.298612 0.096423 -0.147364
  190. v 0.331563 0.010451 -0.161376
  191. v 0.354880 -0.072399 -0.171309
  192. v 0.363714 -0.150541 -0.175059
  193. v 0.369097 -0.043966 -0.055382
  194. v 0.369269 -0.043323 -0.053468
  195. v 0.366727 -0.052377 -0.080316
  196. v 0.371074 -0.072399 -0.089275
  197. v 0.371780 -0.092044 -0.097890
  198. v 0.372062 -0.103342 -0.103491
  199. v 0.380347 -0.147638 -0.089008
  200. v 0.380991 -0.150541 -0.087581
  201. v 0.372235 -0.110623 -0.107100
  202. v 0.377586 -0.168916 0.080347
  203. v 0.347647 -0.216664 0.168249
  204. v 0.380018 -0.174392 0.060686
  205. v 0.380441 -0.175333 0.057296
  206. v 0.387330 -0.192107 0.000008
  207. v 0.380849 -0.216664 0.000008
  208. v 0.312279 -0.265542 0.153185
  209. v 0.342516 -0.265542 0.000008
  210. v 0.276926 -0.298729 0.138138
  211. v 0.304198 -0.298729 0.000008
  212. v 0.260843 -0.317810 0.131296
  213. v 0.286781 -0.317810 0.000008
  214. v 0.256575 -0.216664 0.304323
  215. v 0.229351 -0.265542 0.277115
  216. v 0.202126 -0.298729 0.249890
  217. v 0.189762 -0.317810 0.237510
  218. v 0.120469 -0.216664 0.395395
  219. v 0.105437 -0.265542 0.360043
  220. v 0.090389 -0.298729 0.324675
  221. v 0.083548 -0.317810 0.308591
  222. v -0.047756 -0.216664 0.428613
  223. v -0.047756 -0.265542 0.390296
  224. v -0.047756 -0.298729 0.351962
  225. v -0.047756 -0.317810 0.334529
  226. v -0.215982 -0.216664 0.395395
  227. v -0.200934 -0.265542 0.360043
  228. v -0.185886 -0.298729 0.324675
  229. v -0.179045 -0.317810 0.308591
  230. v -0.352056 -0.216664 0.304323
  231. v -0.324847 -0.265542 0.277115
  232. v -0.297623 -0.298729 0.249890
  233. v -0.285259 -0.317810 0.237510
  234. v -0.443128 -0.216664 0.168249
  235. v -0.407791 -0.265542 0.153185
  236. v -0.372423 -0.298729 0.138138
  237. v -0.356340 -0.317810 0.131296
  238. v -0.490296 -0.160992 0.003664
  239. v -0.479186 -0.194320 0.015432
  240. v -0.474322 -0.208881 0.020610
  241. v -0.476644 -0.214169 0.001844
  242. v -0.476927 -0.214467 0.000008
  243. v -0.476346 -0.216664 0.000008
  244. v -0.475436 -0.213133 0.009344
  245. v -0.473459 -0.211470 0.021520
  246. v -0.438013 -0.265542 0.000008
  247. v -0.399679 -0.298729 0.000008
  248. v -0.382277 -0.317810 0.000008
  249. v -0.443128 -0.216664 -0.168218
  250. v -0.473459 -0.211470 -0.021505
  251. v -0.475719 -0.204707 -0.019104
  252. v -0.479186 -0.194304 -0.015417
  253. v -0.490296 -0.160992 -0.003648
  254. v -0.407791 -0.265542 -0.153186
  255. v -0.372423 -0.298729 -0.138138
  256. v -0.356340 -0.317810 -0.131296
  257. v -0.352056 -0.216664 -0.304308
  258. v -0.324847 -0.265542 -0.277083
  259. v -0.297623 -0.298729 -0.249875
  260. v -0.285259 -0.317810 -0.237510
  261. v -0.215982 -0.216664 -0.395379
  262. v -0.200934 -0.265542 -0.360011
  263. v -0.185886 -0.298729 -0.324659
  264. v -0.179045 -0.317810 -0.308591
  265. v -0.047756 -0.216664 -0.428598
  266. v -0.047756 -0.265542 -0.390264
  267. v -0.047756 -0.298729 -0.351930
  268. v -0.047756 -0.317810 -0.334529
  269. v 0.120469 -0.216664 -0.395379
  270. v 0.105437 -0.265542 -0.360011
  271. v 0.090389 -0.298729 -0.324659
  272. v 0.083548 -0.317810 -0.308591
  273. v 0.256575 -0.216664 -0.304308
  274. v 0.229351 -0.265542 -0.277083
  275. v 0.202126 -0.298729 -0.249875
  276. v 0.189762 -0.317810 -0.237510
  277. v 0.347647 -0.216664 -0.168218
  278. v 0.312279 -0.265542 -0.153186
  279. v 0.276926 -0.298729 -0.138138
  280. v 0.260843 -0.317810 -0.131296
  281. v 0.377570 -0.168916 -0.080331
  282. v 0.384097 -0.184842 -0.026071
  283. v 0.253860 -0.330080 0.128331
  284. v 0.279186 -0.330080 0.000008
  285. v 0.216484 -0.340797 0.112420
  286. v 0.238687 -0.340797 0.000008
  287. v 0.124157 -0.348392 0.073145
  288. v 0.138593 -0.348392 0.000008
  289. v -0.047756 -0.351248 0.000008
  290. v -0.474950 -0.206983 0.037651
  291. v -0.490296 -0.160992 0.037651
  292. v -0.482623 -0.183995 0.050173
  293. v 0.184395 -0.330080 0.232144
  294. v 0.155618 -0.340797 0.203366
  295. v 0.084552 -0.348392 0.132301
  296. v 0.080582 -0.330080 0.301609
  297. v 0.064671 -0.340797 0.264248
  298. v 0.025396 -0.348392 0.171905
  299. v -0.490296 -0.160992 -0.037620
  300. v -0.047756 -0.330080 0.326934
  301. v -0.047756 -0.340797 0.286435
  302. v -0.047756 -0.348392 0.186341
  303. v -0.474950 -0.206983 -0.037620
  304. v -0.482623 -0.183995 -0.050173
  305. v -0.176079 -0.330080 0.301609
  306. v -0.160168 -0.340797 0.264248
  307. v -0.120893 -0.348392 0.171905
  308. v -0.279876 -0.330080 0.232144
  309. v -0.251114 -0.340797 0.203366
  310. v -0.180049 -0.348392 0.132301
  311. v -0.349357 -0.330080 0.128331
  312. v -0.311981 -0.340797 0.112420
  313. v -0.219638 -0.348392 0.073145
  314. v -0.374683 -0.330080 0.000008
  315. v -0.334184 -0.340797 0.000008
  316. v -0.234089 -0.348392 0.000008
  317. v -0.349357 -0.330080 -0.128315
  318. v -0.311981 -0.340797 -0.112420
  319. v -0.219638 -0.348392 -0.073145
  320. v -0.279876 -0.330080 -0.232128
  321. v -0.251114 -0.340797 -0.203366
  322. v -0.180049 -0.348392 -0.132301
  323. v -0.176079 -0.330080 -0.301609
  324. v -0.160168 -0.340797 -0.264232
  325. v -0.120893 -0.348392 -0.171889
  326. v -0.047756 -0.330080 -0.326934
  327. v -0.047756 -0.340797 -0.286420
  328. v -0.047756 -0.348392 -0.186341
  329. v 0.080582 -0.330080 -0.301609
  330. v 0.064671 -0.340797 -0.264232
  331. v 0.025396 -0.348392 -0.171889
  332. v -0.250236 0.183996 -0.208073
  333. v 0.590625 0.183996 0.018837
  334. v 0.590625 0.183996 -0.018806
  335. v 0.576691 0.183996 0.000008
  336. v -0.201436 0.183996 -0.240743
  337. v -0.096791 0.183996 0.280237
  338. v -0.047756 0.183996 0.289934
  339. v 0.089401 0.183996 0.251821
  340. v 0.080723 0.183996 0.257626
  341. v -0.298627 0.183996 0.138546
  342. v -0.315197 0.183996 0.113801
  343. v -0.337667 0.183996 0.000008
  344. v -0.328111 0.183996 -0.048353
  345. v -0.185227 0.183996 -0.251585
  346. v 0.037494 0.183996 0.273098
  347. v 0.215323 0.183996 0.120344
  348. v 0.158097 0.183996 0.205845
  349. v 0.225302 0.183996 -0.085399
  350. v 0.219701 0.183996 -0.113785
  351. v 0.065299 0.183996 0.267606
  352. v 0.118461 0.183996 -0.232363
  353. v 0.154205 0.183996 -0.208434
  354. v -0.038122 0.183996 -0.288020
  355. v 0.066052 0.183996 -0.267449
  356. v -0.316406 0.183996 0.107665
  357. v 0.242170 0.183996 0.000008
  358. v 0.158097 0.183996 -0.205830
  359. v 0.167982 0.183996 -0.191064
  360. v 0.066052 0.183996 0.267449
  361. v 0.621302 0.183996 -0.025082
  362. v 0.665896 0.183996 0.000008
  363. v 0.651962 0.183996 -0.018806
  364. v 0.651962 0.183996 0.018837
  365. v 0.105939 0.183996 0.240742
  366. v 0.621302 0.183996 0.025098
  367. v 0.219701 0.183996 0.113801
  368. v 0.221301 0.183996 0.105688
  369. v -0.286671 0.183996 0.156418
  370. v -0.321631 0.183996 0.081194
  371. v -0.162475 0.183996 -0.266821
  372. v -0.315197 0.183996 -0.113785
  373. v -0.255822 0.183996 -0.202487
  374. v -0.047756 0.183996 -0.289919
  375. v -0.057391 0.183996 -0.288020
  376. v -0.161533 0.183996 -0.267449
  377. v -0.113157 0.183996 -0.277005
  378. v -0.253578 0.183996 0.205845
  379. v -0.161533 0.183996 0.267449
  380. v 0.232630 0.183996 0.048368
  381. v -0.253578 0.183996 -0.205830
  382. v 0.184395 -0.330080 -0.232128
  383. v 0.155618 -0.340797 -0.203366
  384. v 0.084552 -0.348392 -0.132301
  385. v 0.253860 -0.330080 -0.128315
  386. v 0.216484 -0.340797 -0.112420
  387. v 0.124157 -0.348392 -0.073145
  388. v -0.511855 0.107297 0.037651
  389. v -0.508764 0.099577 0.000008
  390. v -0.593167 0.100942 0.037651
  391. v -0.585777 0.094085 0.000008
  392. v -0.643254 0.083713 0.037651
  393. v -0.633509 0.079178 0.000008
  394. v -0.660341 0.050181 0.037651
  395. v -0.649891 0.050181 0.000008
  396. v -0.518697 0.124259 0.050173
  397. v -0.609455 0.116037 0.050173
  398. v -0.664688 0.093677 0.050173
  399. v -0.683345 0.050181 0.050173
  400. v -0.525522 0.141253 0.037651
  401. v -0.625758 0.131116 0.037651
  402. v -0.686138 0.103657 0.037651
  403. v -0.706332 0.050181 0.037651
  404. v -0.528629 0.148973 0.000008
  405. v -0.633164 0.137973 0.000008
  406. v -0.695882 0.108191 0.000008
  407. v -0.716783 0.050181 0.000008
  408. v -0.525522 0.141253 -0.037620
  409. v -0.625758 0.131116 -0.037620
  410. v -0.686138 0.103657 -0.037620
  411. v -0.706332 0.050181 -0.037620
  412. v -0.518697 0.124259 -0.050173
  413. v -0.609455 0.116037 -0.050173
  414. v -0.664688 0.093677 -0.050173
  415. v -0.683345 0.050181 -0.050173
  416. v -0.511855 0.107297 -0.037620
  417. v -0.593167 0.100942 -0.037620
  418. v -0.643254 0.083713 -0.037620
  419. v -0.660341 0.050181 -0.037620
  420. v -0.650676 0.000314 0.037651
  421. v -0.641167 0.004692 0.000008
  422. v -0.620392 -0.056880 0.037651
  423. v -0.613644 -0.050180 0.000008
  424. v -0.567575 -0.113337 0.037651
  425. v -0.565206 -0.105068 0.000008
  426. v -0.671576 -0.009352 0.050173
  427. v -0.635251 -0.071614 0.050173
  428. v -0.572800 -0.131523 0.050173
  429. v -0.692493 -0.019002 0.037651
  430. v -0.650095 -0.086333 0.037651
  431. v -0.578010 -0.149725 0.037651
  432. v -0.701970 -0.023395 0.000008
  433. v -0.656858 -0.093049 0.000008
  434. v -0.580363 -0.157995 0.000008
  435. v -0.692493 -0.019002 -0.037620
  436. v -0.650095 -0.086333 -0.037620
  437. v -0.578010 -0.149725 -0.037620
  438. v -0.671576 -0.009352 -0.050173
  439. v -0.635251 -0.071614 -0.050173
  440. v -0.572800 -0.131523 -0.050173
  441. v -0.650676 0.000314 -0.037620
  442. v -0.620392 -0.056880 -0.037620
  443. v -0.567575 -0.113337 -0.037620
  444. v 0.446517 -0.030221 0.074777
  445. v 0.438342 -0.008897 0.000008
  446. v 0.495144 0.037753 0.057092
  447. v 0.484710 0.050181 0.000008
  448. v 0.522871 0.117292 0.039408
  449. v 0.510145 0.121780 0.000008
  450. v 0.575311 0.183996 0.031375
  451. v 0.554410 0.183996 0.000008
  452. v 0.464484 -0.077106 0.099678
  453. v 0.518163 0.010451 0.076110
  454. v 0.550911 0.107407 0.052542
  455. v 0.621302 0.183996 0.041825
  456. v 0.482466 -0.123992 0.074777
  457. v 0.541151 -0.016868 0.057092
  458. v 0.578951 0.097521 0.039408
  459. v 0.667292 0.183996 0.031375
  460. v 0.490641 -0.145316 0.000008
  461. v 0.551601 -0.029279 0.000008
  462. v 0.591676 0.093018 0.000008
  463. v 0.688193 0.183996 0.000008
  464. v 0.482466 -0.123992 -0.074745
  465. v 0.541151 -0.016868 -0.057061
  466. v 0.578951 0.097521 -0.039393
  467. v 0.667292 0.183996 -0.031343
  468. v 0.464484 -0.077106 -0.099678
  469. v 0.518163 0.010451 -0.076095
  470. v 0.550911 0.107407 -0.052526
  471. v 0.621302 0.183996 -0.041809
  472. v 0.446517 -0.030221 -0.074745
  473. v 0.495144 0.037753 -0.057061
  474. v 0.522871 0.117292 -0.039393
  475. v 0.575311 0.183996 -0.031343
  476. v 0.592806 0.193850 0.029397
  477. v 0.570431 0.193395 0.000008
  478. v 0.603288 0.197270 0.025098
  479. v 0.582277 0.196533 0.000008
  480. v 0.603602 0.194022 0.020783
  481. v 0.585745 0.193395 0.000008
  482. v 0.642077 0.194854 0.039205
  483. v 0.649514 0.198871 0.033462
  484. v 0.642861 0.195450 0.027703
  485. v 0.691347 0.195874 0.029397
  486. v 0.695772 0.200503 0.025098
  487. v 0.682121 0.196862 0.020783
  488. v 0.713723 0.196329 0.000008
  489. v 0.716783 0.201240 0.000008
  490. v 0.699962 0.197506 0.000008
  491. v 0.691347 0.195874 -0.029398
  492. v 0.695772 0.200503 -0.025082
  493. v 0.682121 0.196862 -0.020767
  494. v 0.642077 0.194854 -0.039189
  495. v 0.649514 0.198871 -0.033446
  496. v 0.642861 0.195450 -0.027687
  497. v 0.592806 0.193850 -0.029398
  498. v 0.603288 0.197270 -0.025082
  499. v 0.603602 0.194022 -0.020767
  500. v -0.047756 0.351248 0.000008
  501. v 0.022368 0.340280 0.029900
  502. v 0.028205 0.340280 0.000008
  503. v 0.019135 0.313605 0.028519
  504. v 0.024737 0.313605 0.000008
  505. v -0.007226 0.280669 0.017252
  506. v -0.003852 0.280669 0.000008
  507. v -0.006614 0.250887 0.017519
  508. v -0.003146 0.250887 0.000008
  509. v 0.006269 0.340280 0.054017
  510. v 0.003774 0.313605 0.051522
  511. v -0.016562 0.280669 0.031218
  512. v -0.016076 0.250887 0.031673
  513. v -0.017849 0.340280 0.070116
  514. v -0.019230 0.313605 0.066884
  515. v -0.030496 0.280669 0.040523
  516. v -0.030229 0.250887 0.041166
  517. v -0.047756 0.340280 0.075985
  518. v -0.047756 0.313605 0.072486
  519. v -0.047756 0.280669 0.043928
  520. v -0.047756 0.250887 0.044618
  521. v -0.077632 0.340280 0.070116
  522. v -0.076267 0.313605 0.066884
  523. v -0.065001 0.280669 0.040523
  524. v -0.065252 0.250887 0.041166
  525. v -0.101765 0.340280 0.054017
  526. v -0.099271 0.313605 0.051522
  527. v -0.078935 0.280669 0.031218
  528. v -0.079405 0.250887 0.031673
  529. v -0.117849 0.340280 0.029900
  530. v -0.114632 0.313605 0.028519
  531. v -0.088255 0.280669 0.017252
  532. v -0.088883 0.250887 0.017519
  533. v -0.123702 0.340280 0.000008
  534. v -0.120234 0.313605 0.000008
  535. v -0.091645 0.280669 0.000008
  536. v -0.092335 0.250887 0.000008
  537. v -0.117849 0.340280 -0.029884
  538. v -0.114632 0.313605 -0.028519
  539. v -0.088255 0.280669 -0.017253
  540. v -0.088883 0.250887 -0.017504
  541. v -0.101765 0.340280 -0.053986
  542. v -0.099271 0.313605 -0.051522
  543. v -0.078935 0.280669 -0.031186
  544. v -0.079405 0.250887 -0.031657
  545. v -0.077632 0.340280 -0.070101
  546. v -0.076267 0.313605 -0.066884
  547. v -0.065001 0.280669 -0.040507
  548. v -0.065252 0.250887 -0.041135
  549. v -0.047756 0.340280 -0.075953
  550. v -0.047756 0.313605 -0.072486
  551. v -0.047756 0.280669 -0.043896
  552. v -0.047756 0.250887 -0.044587
  553. v -0.017849 0.340280 -0.070101
  554. v -0.019230 0.313605 -0.066884
  555. v -0.030496 0.280669 -0.040507
  556. v -0.030229 0.250887 -0.041135
  557. v 0.006269 0.340280 -0.053986
  558. v 0.003774 0.313605 -0.051522
  559. v -0.016562 0.280669 -0.031186
  560. v -0.016076 0.250887 -0.031657
  561. v 0.022368 0.340280 -0.029884
  562. v 0.019135 0.313605 -0.028519
  563. v -0.007226 0.280669 -0.017253
  564. v -0.006614 0.250887 -0.017504
  565. v 0.046109 0.231022 0.039942
  566. v 0.054001 0.231022 0.000008
  567. v 0.121991 0.217434 0.072219
  568. v 0.136239 0.217434 0.000008
  569. v 0.190138 0.203845 0.101216
  570. v 0.210113 0.203845 0.000008
  571. v 0.024502 0.231022 0.072250
  572. v 0.082889 0.217434 0.130637
  573. v 0.135345 0.203845 0.183093
  574. v -0.007822 0.231022 0.093873
  575. v 0.024470 0.217434 0.169740
  576. v 0.053468 0.203845 0.237887
  577. v -0.047756 0.231022 0.101765
  578. v -0.047756 0.217434 0.183987
  579. v -0.047756 0.203845 0.257862
  580. v -0.087675 0.231022 0.093873
  581. v -0.119952 0.217434 0.169740
  582. v -0.148965 0.203845 0.237887
  583. v -0.119999 0.231022 0.072250
  584. v -0.178386 0.217434 0.130637
  585. v -0.230826 0.203845 0.183093
  586. v -0.141605 0.231022 0.039942
  587. v -0.217488 0.217434 0.072219
  588. v -0.285619 0.203845 0.101216
  589. v -0.149482 0.231022 0.000008
  590. v -0.231736 0.217434 0.000008
  591. v -0.305610 0.203845 0.000008
  592. v -0.141605 0.231022 -0.039926
  593. v -0.217488 0.217434 -0.072203
  594. v -0.285619 0.203845 -0.101216
  595. v -0.119999 0.231022 -0.072235
  596. v -0.178386 0.217434 -0.130622
  597. v -0.230826 0.203845 -0.183077
  598. v -0.087675 0.231022 -0.093857
  599. v -0.119952 0.217434 -0.169708
  600. v -0.148965 0.203845 -0.237871
  601. v -0.047756 0.231022 -0.101734
  602. v -0.047756 0.217434 -0.183972
  603. v -0.047756 0.203845 -0.257862
  604. v -0.007822 0.231022 -0.093857
  605. v 0.024470 0.217434 -0.169708
  606. v 0.053468 0.203845 -0.237871
  607. v 0.024502 0.231022 -0.072235
  608. v 0.082889 0.217434 -0.130622
  609. v 0.135345 0.203845 -0.183077
  610. v 0.046109 0.231022 -0.039926
  611. v 0.121991 0.217434 -0.072203
  612. v 0.190138 0.203845 -0.101216
  613. f 1 2 3
  614. f 2 1 4
  615. f 5 4 1
  616. f 4 5 6
  617. f 7 6 5
  618. f 6 7 8
  619. f 9 8 7
  620. f 8 9 10
  621. f 11 3 12
  622. f 3 11 1
  623. f 13 1 11
  624. f 1 13 5
  625. f 14 5 13
  626. f 5 14 7
  627. f 15 7 14
  628. f 7 15 9
  629. f 16 12 17
  630. f 12 16 11
  631. f 18 11 16
  632. f 11 18 13
  633. f 19 13 18
  634. f 13 19 14
  635. f 20 14 19
  636. f 14 20 15
  637. f 21 17 22
  638. f 17 21 16
  639. f 23 16 21
  640. f 16 23 18
  641. f 24 18 23
  642. f 18 24 19
  643. f 25 19 24
  644. f 19 25 20
  645. f 26 22 27
  646. f 22 26 21
  647. f 28 21 26
  648. f 21 28 23
  649. f 29 23 28
  650. f 23 29 24
  651. f 30 24 29
  652. f 24 30 25
  653. f 31 27 32
  654. f 27 31 26
  655. f 33 26 31
  656. f 26 33 28
  657. f 34 28 33
  658. f 28 34 29
  659. f 35 29 34
  660. f 29 35 30
  661. f 36 32 37
  662. f 32 36 31
  663. f 38 31 36
  664. f 31 38 33
  665. f 39 33 38
  666. f 33 39 34
  667. f 40 34 39
  668. f 34 40 35
  669. f 41 37 42
  670. f 37 41 36
  671. f 43 36 41
  672. f 36 43 38
  673. f 44 38 43
  674. f 38 44 39
  675. f 45 39 44
  676. f 39 45 40
  677. f 46 42 47
  678. f 42 46 41
  679. f 48 41 46
  680. f 41 48 43
  681. f 49 43 48
  682. f 43 49 44
  683. f 50 44 49
  684. f 44 50 45
  685. f 51 47 52
  686. f 47 51 46
  687. f 53 46 51
  688. f 46 53 48
  689. f 54 48 53
  690. f 48 54 49
  691. f 55 49 54
  692. f 49 55 50
  693. f 56 52 57
  694. f 52 56 51
  695. f 58 51 56
  696. f 51 58 53
  697. f 59 53 58
  698. f 53 59 54
  699. f 60 54 59
  700. f 54 60 55
  701. f 61 57 62
  702. f 57 61 56
  703. f 63 56 61
  704. f 56 63 58
  705. f 64 58 63
  706. f 58 64 59
  707. f 65 59 64
  708. f 59 65 60
  709. f 66 62 67
  710. f 62 66 61
  711. f 68 61 66
  712. f 61 68 63
  713. f 69 63 68
  714. f 63 69 64
  715. f 70 64 69
  716. f 64 70 65
  717. f 71 67 72
  718. f 67 71 66
  719. f 73 66 71
  720. f 66 73 68
  721. f 74 68 73
  722. f 68 74 69
  723. f 75 69 74
  724. f 69 75 70
  725. f 76 72 77
  726. f 72 76 71
  727. f 78 71 76
  728. f 71 78 73
  729. f 79 73 78
  730. f 73 79 74
  731. f 80 74 79
  732. f 74 80 75
  733. f 4 77 2
  734. f 77 4 76
  735. f 6 76 4
  736. f 76 6 78
  737. f 8 78 6
  738. f 78 8 79
  739. f 10 79 8
  740. f 79 10 80
  741. f 81 10 9
  742. f 10 81 82
  743. f 83 82 81
  744. f 82 83 84
  745. f 85 84 83
  746. f 86 87 85
  747. f 88 85 87
  748. f 89 85 88
  749. f 90 85 89
  750. f 84 85 90
  751. f 91 92 93
  752. f 86 92 91
  753. f 85 92 86
  754. f 93 92 94
  755. f 95 94 92
  756. f 96 9 15
  757. f 9 96 81
  758. f 97 81 96
  759. f 81 97 83
  760. f 98 83 97
  761. f 83 98 85
  762. f 99 85 98
  763. f 85 99 92
  764. f 100 15 20
  765. f 15 100 96
  766. f 101 96 100
  767. f 96 101 97
  768. f 102 97 101
  769. f 97 102 98
  770. f 103 98 102
  771. f 98 103 99
  772. f 104 20 25
  773. f 20 104 100
  774. f 105 100 104
  775. f 100 105 101
  776. f 106 101 105
  777. f 101 106 102
  778. f 107 102 106
  779. f 102 107 103
  780. f 108 25 30
  781. f 25 108 104
  782. f 109 104 108
  783. f 104 109 105
  784. f 110 105 109
  785. f 105 110 106
  786. f 111 106 110
  787. f 106 111 107
  788. f 112 30 35
  789. f 30 112 108
  790. f 113 108 112
  791. f 108 113 109
  792. f 114 109 113
  793. f 109 114 110
  794. f 115 110 114
  795. f 110 115 111
  796. f 116 35 40
  797. f 35 116 112
  798. f 117 112 116
  799. f 112 117 113
  800. f 118 113 117
  801. f 113 118 114
  802. f 119 114 118
  803. f 114 119 115
  804. f 120 121 122
  805. f 45 120 122
  806. f 40 45 122
  807. f 40 122 123
  808. f 124 125 126
  809. f 127 124 126
  810. f 126 116 127
  811. f 128 127 116
  812. f 129 128 116
  813. f 130 129 116
  814. f 131 130 116
  815. f 123 131 116
  816. f 40 123 116
  817. f 132 116 126
  818. f 116 132 117
  819. f 133 117 132
  820. f 117 133 118
  821. f 134 118 133
  822. f 118 134 119
  823. f 135 45 50
  824. f 135 126 125
  825. f 135 125 136
  826. f 135 136 137
  827. f 135 137 138
  828. f 135 138 139
  829. f 135 139 140
  830. f 135 140 141
  831. f 142 120 45
  832. f 141 142 45
  833. f 135 141 45
  834. f 143 126 135
  835. f 126 143 132
  836. f 144 132 143
  837. f 132 144 133
  838. f 145 133 144
  839. f 133 145 134
  840. f 146 50 55
  841. f 50 146 135
  842. f 147 135 146
  843. f 135 147 143
  844. f 148 143 147
  845. f 143 148 144
  846. f 149 144 148
  847. f 144 149 145
  848. f 150 55 60
  849. f 55 150 146
  850. f 151 146 150
  851. f 146 151 147
  852. f 152 147 151
  853. f 147 152 148
  854. f 153 148 152
  855. f 148 153 149
  856. f 154 60 65
  857. f 60 154 150
  858. f 155 150 154
  859. f 150 155 151
  860. f 156 151 155
  861. f 151 156 152
  862. f 157 152 156
  863. f 152 157 153
  864. f 158 65 70
  865. f 65 158 154
  866. f 159 154 158
  867. f 154 159 155
  868. f 160 155 159
  869. f 155 160 156
  870. f 161 156 160
  871. f 156 161 157
  872. f 162 70 75
  873. f 70 162 158
  874. f 163 158 162
  875. f 158 163 159
  876. f 164 159 163
  877. f 159 164 160
  878. f 165 160 164
  879. f 160 165 161
  880. f 166 75 80
  881. f 75 166 162
  882. f 167 162 166
  883. f 162 167 163
  884. f 168 163 167
  885. f 163 168 164
  886. f 169 164 168
  887. f 164 169 165
  888. f 82 80 10
  889. f 80 82 166
  890. f 84 166 82
  891. f 166 84 167
  892. f 170 90 171
  893. f 170 167 90
  894. f 84 90 167
  895. f 168 172 173
  896. f 168 170 172
  897. f 168 167 170
  898. f 173 174 168
  899. f 175 168 174
  900. f 169 176 177
  901. f 169 178 176
  902. f 169 175 178
  903. f 169 168 175
  904. f 179 180 181
  905. f 95 180 179
  906. f 92 180 95
  907. f 182 180 183
  908. f 181 180 182
  909. f 184 183 180
  910. f 185 184 180
  911. f 184 185 186
  912. f 187 186 185
  913. f 186 187 188
  914. f 189 188 187
  915. f 188 189 190
  916. f 191 92 99
  917. f 92 191 180
  918. f 192 180 191
  919. f 180 192 185
  920. f 193 185 192
  921. f 185 193 187
  922. f 194 187 193
  923. f 187 194 189
  924. f 195 99 103
  925. f 99 195 191
  926. f 196 191 195
  927. f 191 196 192
  928. f 197 192 196
  929. f 192 197 193
  930. f 198 193 197
  931. f 193 198 194
  932. f 199 103 107
  933. f 103 199 195
  934. f 200 195 199
  935. f 195 200 196
  936. f 201 196 200
  937. f 196 201 197
  938. f 202 197 201
  939. f 197 202 198
  940. f 203 107 111
  941. f 107 203 199
  942. f 204 199 203
  943. f 199 204 200
  944. f 205 200 204
  945. f 200 205 201
  946. f 206 201 205
  947. f 201 206 202
  948. f 207 111 115
  949. f 111 207 203
  950. f 208 203 207
  951. f 203 208 204
  952. f 209 204 208
  953. f 204 209 205
  954. f 210 205 209
  955. f 205 210 206
  956. f 211 115 119
  957. f 115 211 207
  958. f 212 207 211
  959. f 207 212 208
  960. f 213 208 212
  961. f 208 213 209
  962. f 214 209 213
  963. f 209 214 210
  964. f 215 216 217
  965. f 134 215 217
  966. f 119 134 217
  967. f 218 219 220
  968. f 221 218 220
  969. f 222 221 211
  970. f 217 222 211
  971. f 119 217 211
  972. f 220 211 221
  973. f 223 211 220
  974. f 211 223 212
  975. f 224 212 223
  976. f 212 224 213
  977. f 225 213 224
  978. f 213 225 214
  979. f 226 134 145
  980. f 226 220 219
  981. f 226 219 227
  982. f 226 227 228
  983. f 226 228 229
  984. f 226 229 230
  985. f 226 230 134
  986. f 231 220 226
  987. f 220 231 223
  988. f 232 223 231
  989. f 223 232 224
  990. f 233 224 232
  991. f 224 233 225
  992. f 234 145 149
  993. f 145 234 226
  994. f 235 226 234
  995. f 226 235 231
  996. f 236 231 235
  997. f 231 236 232
  998. f 237 232 236
  999. f 232 237 233
  1000. f 238 149 153
  1001. f 149 238 234
  1002. f 239 234 238
  1003. f 234 239 235
  1004. f 240 235 239
  1005. f 235 240 236
  1006. f 241 236 240
  1007. f 236 241 237
  1008. f 242 153 157
  1009. f 153 242 238
  1010. f 243 238 242
  1011. f 238 243 239
  1012. f 244 239 243
  1013. f 239 244 240
  1014. f 245 240 244
  1015. f 240 245 241
  1016. f 246 157 161
  1017. f 157 246 242
  1018. f 247 242 246
  1019. f 242 247 243
  1020. f 248 243 247
  1021. f 243 248 244
  1022. f 249 244 248
  1023. f 244 249 245
  1024. f 250 161 165
  1025. f 161 250 246
  1026. f 251 246 250
  1027. f 246 251 247
  1028. f 252 247 251
  1029. f 247 252 248
  1030. f 253 248 252
  1031. f 248 253 249
  1032. f 254 165 169
  1033. f 165 254 250
  1034. f 255 250 254
  1035. f 250 255 251
  1036. f 256 251 255
  1037. f 251 256 252
  1038. f 257 252 256
  1039. f 252 257 253
  1040. f 177 258 169
  1041. f 184 259 183
  1042. f 184 258 259
  1043. f 184 169 258
  1044. f 169 184 254
  1045. f 186 254 184
  1046. f 254 186 255
  1047. f 188 255 186
  1048. f 255 188 256
  1049. f 190 256 188
  1050. f 256 190 257
  1051. f 260 190 189
  1052. f 190 260 261
  1053. f 262 261 260
  1054. f 261 262 263
  1055. f 264 263 262
  1056. f 263 264 265
  1057. f 266 265 264
  1058. f 267 268 269
  1059. f 270 189 194
  1060. f 189 270 260
  1061. f 271 260 270
  1062. f 260 271 262
  1063. f 272 262 271
  1064. f 262 272 264
  1065. f 266 264 272
  1066. f 268 267 216
  1067. f 267 222 217
  1068. f 217 216 267
  1069. f 273 194 198
  1070. f 194 273 270
  1071. f 274 270 273
  1072. f 270 274 271
  1073. f 275 271 274
  1074. f 271 275 272
  1075. f 266 272 275
  1076. f 268 216 215
  1077. f 230 229 276
  1078. f 277 198 202
  1079. f 198 277 273
  1080. f 278 273 277
  1081. f 273 278 274
  1082. f 279 274 278
  1083. f 274 279 275
  1084. f 266 275 279
  1085. f 280 281 228
  1086. f 228 227 280
  1087. f 282 202 206
  1088. f 202 282 277
  1089. f 283 277 282
  1090. f 277 283 278
  1091. f 284 278 283
  1092. f 278 284 279
  1093. f 266 279 284
  1094. f 228 281 229
  1095. f 276 229 281
  1096. f 285 206 210
  1097. f 206 285 282
  1098. f 286 282 285
  1099. f 282 286 283
  1100. f 287 283 286
  1101. f 283 287 284
  1102. f 266 284 287
  1103. f 215 134 268
  1104. f 276 134 230
  1105. f 288 210 214
  1106. f 210 288 285
  1107. f 289 285 288
  1108. f 285 289 286
  1109. f 290 286 289
  1110. f 286 290 287
  1111. f 266 287 290
  1112. f 291 214 225
  1113. f 214 291 288
  1114. f 292 288 291
  1115. f 288 292 289
  1116. f 293 289 292
  1117. f 289 293 290
  1118. f 266 290 293
  1119. f 294 225 233
  1120. f 225 294 291
  1121. f 295 291 294
  1122. f 291 295 292
  1123. f 296 292 295
  1124. f 292 296 293
  1125. f 266 293 296
  1126. f 297 233 237
  1127. f 233 297 294
  1128. f 298 294 297
  1129. f 294 298 295
  1130. f 299 295 298
  1131. f 295 299 296
  1132. f 266 296 299
  1133. f 300 237 241
  1134. f 237 300 297
  1135. f 301 297 300
  1136. f 297 301 298
  1137. f 302 298 301
  1138. f 298 302 299
  1139. f 266 299 302
  1140. f 303 241 245
  1141. f 241 303 300
  1142. f 304 300 303
  1143. f 300 304 301
  1144. f 305 301 304
  1145. f 301 305 302
  1146. f 266 302 305
  1147. f 306 245 249
  1148. f 245 306 303
  1149. f 307 303 306
  1150. f 303 307 304
  1151. f 308 304 307
  1152. f 304 308 305
  1153. f 266 305 308
  1154. f 27 37 32
  1155. f 309 57 52
  1156. f 310 311 312
  1157. f 57 309 313
  1158. f 314 22 315
  1159. f 17 316 317
  1160. f 318 319 37
  1161. f 320 321 42
  1162. f 57 313 322
  1163. f 22 314 27
  1164. f 323 315 17
  1165. f 12 324 325
  1166. f 326 77 327
  1167. f 17 328 323
  1168. f 329 330 72
  1169. f 331 332 67
  1170. f 333 37 319
  1171. f 334 77 326
  1172. f 2 77 334
  1173. f 335 72 330
  1174. f 336 72 335
  1175. f 17 337 328
  1176. f 17 317 337
  1177. f 310 338 311
  1178. f 338 339 340
  1179. f 338 310 339
  1180. f 341 339 310
  1181. f 17 12 342
  1182. f 310 343 341
  1183. f 17 342 316
  1184. f 344 2 345
  1185. f 3 344 324
  1186. f 3 2 344
  1187. f 22 17 315
  1188. f 37 346 318
  1189. f 347 37 333
  1190. f 57 322 348
  1191. f 349 350 47
  1192. f 329 67 332
  1193. f 72 67 329
  1194. f 331 62 351
  1195. f 67 62 331
  1196. f 352 351 57
  1197. f 57 353 354
  1198. f 57 348 353
  1199. f 37 355 346
  1200. f 356 27 314
  1201. f 355 27 356
  1202. f 37 27 355
  1203. f 77 72 336
  1204. f 57 354 352
  1205. f 345 2 357
  1206. f 324 12 3
  1207. f 334 357 2
  1208. f 325 342 12
  1209. f 336 327 77
  1210. f 47 321 349
  1211. f 47 42 321
  1212. f 42 347 320
  1213. f 42 37 347
  1214. f 62 57 351
  1215. f 52 358 309
  1216. f 52 350 358
  1217. f 52 47 350
  1218. f 359 249 253
  1219. f 249 359 306
  1220. f 360 306 359
  1221. f 306 360 307
  1222. f 361 307 360
  1223. f 307 361 308
  1224. f 266 308 361
  1225. f 362 253 257
  1226. f 253 362 359
  1227. f 363 359 362
  1228. f 359 363 360
  1229. f 364 360 363
  1230. f 360 364 361
  1231. f 266 361 364
  1232. f 261 257 190
  1233. f 257 261 362
  1234. f 263 362 261
  1235. f 362 263 363
  1236. f 265 363 263
  1237. f 363 265 364
  1238. f 266 364 265
  1239. f 124 127 365
  1240. f 128 365 127
  1241. f 366 125 124
  1242. f 366 124 365
  1243. f 367 366 365
  1244. f 366 367 368
  1245. f 369 368 367
  1246. f 368 369 370
  1247. f 371 370 369
  1248. f 370 371 372
  1249. f 130 373 129
  1250. f 128 373 365
  1251. f 129 373 128
  1252. f 374 365 373
  1253. f 365 374 367
  1254. f 375 367 374
  1255. f 367 375 369
  1256. f 376 369 375
  1257. f 369 376 371
  1258. f 123 377 131
  1259. f 122 377 123
  1260. f 130 377 373
  1261. f 131 377 130
  1262. f 378 373 377
  1263. f 373 378 374
  1264. f 379 374 378
  1265. f 374 379 375
  1266. f 380 375 379
  1267. f 375 380 376
  1268. f 381 121 120
  1269. f 122 121 377
  1270. f 381 377 121
  1271. f 382 377 381
  1272. f 377 382 378
  1273. f 383 378 382
  1274. f 378 383 379
  1275. f 384 379 383
  1276. f 379 384 380
  1277. f 385 142 141
  1278. f 120 142 381
  1279. f 385 381 142
  1280. f 386 381 385
  1281. f 381 386 382
  1282. f 387 382 386
  1283. f 382 387 383
  1284. f 388 383 387
  1285. f 383 388 384
  1286. f 140 139 389
  1287. f 140 389 385
  1288. f 141 140 385
  1289. f 390 385 389
  1290. f 385 390 386
  1291. f 391 386 390
  1292. f 386 391 387
  1293. f 392 387 391
  1294. f 387 392 388
  1295. f 138 137 393
  1296. f 138 393 389
  1297. f 139 138 389
  1298. f 394 389 393
  1299. f 389 394 390
  1300. f 395 390 394
  1301. f 390 395 391
  1302. f 396 391 395
  1303. f 391 396 392
  1304. f 125 366 136
  1305. f 393 137 136
  1306. f 393 136 366
  1307. f 368 393 366
  1308. f 393 368 394
  1309. f 370 394 368
  1310. f 394 370 395
  1311. f 372 395 370
  1312. f 395 372 396
  1313. f 397 372 371
  1314. f 372 397 398
  1315. f 399 398 397
  1316. f 398 399 400
  1317. f 401 400 399
  1318. f 400 401 402
  1319. f 268 402 401
  1320. f 402 268 134
  1321. f 403 371 376
  1322. f 371 403 397
  1323. f 404 397 403
  1324. f 397 404 399
  1325. f 405 399 404
  1326. f 399 405 401
  1327. f 269 401 405
  1328. f 401 269 268
  1329. f 406 376 380
  1330. f 376 406 403
  1331. f 407 403 406
  1332. f 403 407 404
  1333. f 408 404 407
  1334. f 404 408 405
  1335. f 267 405 408
  1336. f 405 267 269
  1337. f 409 380 384
  1338. f 380 409 406
  1339. f 410 406 409
  1340. f 406 410 407
  1341. f 411 407 410
  1342. f 407 411 408
  1343. f 411 219 218
  1344. f 411 218 408
  1345. f 218 221 222
  1346. f 218 222 408
  1347. f 267 408 222
  1348. f 412 384 388
  1349. f 384 412 409
  1350. f 413 409 412
  1351. f 409 413 410
  1352. f 414 410 413
  1353. f 410 414 411
  1354. f 280 411 414
  1355. f 219 411 227
  1356. f 280 227 411
  1357. f 415 388 392
  1358. f 388 415 412
  1359. f 416 412 415
  1360. f 412 416 413
  1361. f 417 413 416
  1362. f 413 417 414
  1363. f 281 414 417
  1364. f 414 281 280
  1365. f 418 392 396
  1366. f 392 418 415
  1367. f 419 415 418
  1368. f 415 419 416
  1369. f 420 416 419
  1370. f 416 420 417
  1371. f 276 417 420
  1372. f 417 276 281
  1373. f 398 396 372
  1374. f 396 398 418
  1375. f 400 418 398
  1376. f 418 400 419
  1377. f 402 419 400
  1378. f 419 402 420
  1379. f 134 420 402
  1380. f 420 134 276
  1381. f 89 88 421
  1382. f 90 89 422
  1383. f 421 422 89
  1384. f 423 422 421
  1385. f 422 423 424
  1386. f 425 424 423
  1387. f 424 425 426
  1388. f 427 426 425
  1389. f 426 427 428
  1390. f 429 86 91
  1391. f 429 87 86
  1392. f 421 88 87
  1393. f 87 429 421
  1394. f 430 421 429
  1395. f 421 430 423
  1396. f 431 423 430
  1397. f 423 431 425
  1398. f 432 425 431
  1399. f 425 432 427
  1400. f 433 94 95
  1401. f 179 433 95
  1402. f 94 91 93
  1403. f 429 91 94
  1404. f 94 433 429
  1405. f 434 429 433
  1406. f 429 434 430
  1407. f 435 430 434
  1408. f 430 435 431
  1409. f 436 431 435
  1410. f 431 436 432
  1411. f 183 437 182
  1412. f 181 182 437
  1413. f 433 181 437
  1414. f 181 433 179
  1415. f 438 433 437
  1416. f 433 438 434
  1417. f 439 434 438
  1418. f 434 439 435
  1419. f 440 435 439
  1420. f 435 440 436
  1421. f 258 441 259
  1422. f 183 259 441
  1423. f 437 183 441
  1424. f 442 437 441
  1425. f 437 442 438
  1426. f 443 438 442
  1427. f 438 443 439
  1428. f 444 439 443
  1429. f 439 444 440
  1430. f 445 176 178
  1431. f 445 177 176
  1432. f 258 177 445
  1433. f 258 445 441
  1434. f 446 441 445
  1435. f 441 446 442
  1436. f 447 442 446
  1437. f 442 447 443
  1438. f 448 443 447
  1439. f 443 448 444
  1440. f 449 174 173
  1441. f 449 173 172
  1442. f 449 178 175
  1443. f 449 175 174
  1444. f 178 449 445
  1445. f 450 445 449
  1446. f 445 450 446
  1447. f 451 446 450
  1448. f 446 451 447
  1449. f 452 447 451
  1450. f 447 452 448
  1451. f 422 171 90
  1452. f 171 449 170
  1453. f 422 449 171
  1454. f 172 170 449
  1455. f 424 449 422
  1456. f 449 424 450
  1457. f 426 450 424
  1458. f 450 426 451
  1459. f 428 451 426
  1460. f 451 428 452
  1461. f 453 428 427
  1462. f 428 453 454
  1463. f 455 454 453
  1464. f 454 455 456
  1465. f 457 456 455
  1466. f 456 457 458
  1467. f 310 458 457
  1468. f 458 310 312
  1469. f 459 427 432
  1470. f 427 459 453
  1471. f 460 453 459
  1472. f 453 460 455
  1473. f 461 455 460
  1474. f 455 461 457
  1475. f 343 457 461
  1476. f 457 343 310
  1477. f 462 432 436
  1478. f 432 462 459
  1479. f 463 459 462
  1480. f 459 463 460
  1481. f 464 460 463
  1482. f 460 464 461
  1483. f 341 461 464
  1484. f 461 341 343
  1485. f 465 436 440
  1486. f 436 465 462
  1487. f 466 462 465
  1488. f 462 466 463
  1489. f 467 463 466
  1490. f 463 467 464
  1491. f 339 464 467
  1492. f 464 339 341
  1493. f 468 440 444
  1494. f 440 468 465
  1495. f 469 465 468
  1496. f 465 469 466
  1497. f 470 466 469
  1498. f 466 470 467
  1499. f 340 467 470
  1500. f 467 340 339
  1501. f 471 444 448
  1502. f 444 471 468
  1503. f 472 468 471
  1504. f 468 472 469
  1505. f 473 469 472
  1506. f 469 473 470
  1507. f 338 470 473
  1508. f 470 338 340
  1509. f 474 448 452
  1510. f 448 474 471
  1511. f 475 471 474
  1512. f 471 475 472
  1513. f 476 472 475
  1514. f 472 476 473
  1515. f 311 473 476
  1516. f 473 311 338
  1517. f 454 452 428
  1518. f 452 454 474
  1519. f 456 474 454
  1520. f 474 456 475
  1521. f 458 475 456
  1522. f 475 458 476
  1523. f 312 476 458
  1524. f 476 312 311
  1525. f 477 478 479
  1526. f 480 479 478
  1527. f 479 480 481
  1528. f 482 481 480
  1529. f 481 482 483
  1530. f 484 483 482
  1531. f 483 484 485
  1532. f 477 486 478
  1533. f 487 478 486
  1534. f 478 487 480
  1535. f 488 480 487
  1536. f 480 488 482
  1537. f 489 482 488
  1538. f 482 489 484
  1539. f 477 490 486
  1540. f 491 486 490
  1541. f 486 491 487
  1542. f 492 487 491
  1543. f 487 492 488
  1544. f 493 488 492
  1545. f 488 493 489
  1546. f 477 494 490
  1547. f 495 490 494
  1548. f 490 495 491
  1549. f 496 491 495
  1550. f 491 496 492
  1551. f 497 492 496
  1552. f 492 497 493
  1553. f 477 498 494
  1554. f 499 494 498
  1555. f 494 499 495
  1556. f 500 495 499
  1557. f 495 500 496
  1558. f 501 496 500
  1559. f 496 501 497
  1560. f 477 502 498
  1561. f 503 498 502
  1562. f 498 503 499
  1563. f 504 499 503
  1564. f 499 504 500
  1565. f 505 500 504
  1566. f 500 505 501
  1567. f 477 506 502
  1568. f 507 502 506
  1569. f 502 507 503
  1570. f 508 503 507
  1571. f 503 508 504
  1572. f 509 504 508
  1573. f 504 509 505
  1574. f 477 510 506
  1575. f 511 506 510
  1576. f 506 511 507
  1577. f 512 507 511
  1578. f 507 512 508
  1579. f 513 508 512
  1580. f 508 513 509
  1581. f 477 514 510
  1582. f 515 510 514
  1583. f 510 515 511
  1584. f 516 511 515
  1585. f 511 516 512
  1586. f 517 512 516
  1587. f 512 517 513
  1588. f 477 518 514
  1589. f 519 514 518
  1590. f 514 519 515
  1591. f 520 515 519
  1592. f 515 520 516
  1593. f 521 516 520
  1594. f 516 521 517
  1595. f 477 522 518
  1596. f 523 518 522
  1597. f 518 523 519
  1598. f 524 519 523
  1599. f 519 524 520
  1600. f 525 520 524
  1601. f 520 525 521
  1602. f 477 526 522
  1603. f 527 522 526
  1604. f 522 527 523
  1605. f 528 523 527
  1606. f 523 528 524
  1607. f 529 524 528
  1608. f 524 529 525
  1609. f 477 530 526
  1610. f 531 526 530
  1611. f 526 531 527
  1612. f 532 527 531
  1613. f 527 532 528
  1614. f 533 528 532
  1615. f 528 533 529
  1616. f 477 534 530
  1617. f 535 530 534
  1618. f 530 535 531
  1619. f 536 531 535
  1620. f 531 536 532
  1621. f 537 532 536
  1622. f 532 537 533
  1623. f 477 538 534
  1624. f 539 534 538
  1625. f 534 539 535
  1626. f 540 535 539
  1627. f 535 540 536
  1628. f 541 536 540
  1629. f 536 541 537
  1630. f 477 479 538
  1631. f 481 538 479
  1632. f 538 481 539
  1633. f 483 539 481
  1634. f 539 483 540
  1635. f 485 540 483
  1636. f 540 485 541
  1637. f 542 485 484
  1638. f 485 542 543
  1639. f 544 543 542
  1640. f 543 544 545
  1641. f 546 545 544
  1642. f 545 546 547
  1643. f 344 547 546
  1644. f 547 357 334
  1645. f 547 345 357
  1646. f 547 344 345
  1647. f 548 484 489
  1648. f 484 548 542
  1649. f 549 542 548
  1650. f 542 549 544
  1651. f 550 544 549
  1652. f 544 550 546
  1653. f 325 546 550
  1654. f 546 324 344
  1655. f 546 325 324
  1656. f 551 489 493
  1657. f 489 551 548
  1658. f 552 548 551
  1659. f 548 552 549
  1660. f 553 549 552
  1661. f 549 553 550
  1662. f 337 550 553
  1663. f 550 342 325
  1664. f 550 316 342
  1665. f 550 317 316
  1666. f 550 337 317
  1667. f 554 493 497
  1668. f 493 554 551
  1669. f 555 551 554
  1670. f 551 555 552
  1671. f 556 552 555
  1672. f 552 556 553
  1673. f 315 553 556
  1674. f 553 328 337
  1675. f 553 323 328
  1676. f 553 315 323
  1677. f 557 497 501
  1678. f 497 557 554
  1679. f 558 554 557
  1680. f 554 558 555
  1681. f 559 555 558
  1682. f 555 559 556
  1683. f 559 356 556
  1684. f 314 556 356
  1685. f 315 556 314
  1686. f 560 501 505
  1687. f 501 560 557
  1688. f 561 557 560
  1689. f 557 561 558
  1690. f 562 558 561
  1691. f 558 562 559
  1692. f 559 562 355
  1693. f 355 356 559
  1694. f 563 505 509
  1695. f 505 563 560
  1696. f 564 560 563
  1697. f 560 564 561
  1698. f 565 561 564
  1699. f 561 565 562
  1700. f 562 565 319
  1701. f 562 318 346
  1702. f 562 319 318
  1703. f 346 355 562
  1704. f 566 509 513
  1705. f 509 566 563
  1706. f 567 563 566
  1707. f 563 567 564
  1708. f 568 564 567
  1709. f 564 568 565
  1710. f 320 565 568
  1711. f 319 565 333
  1712. f 565 320 347
  1713. f 347 333 565
  1714. f 569 513 517
  1715. f 513 569 566
  1716. f 570 566 569
  1717. f 566 570 567
  1718. f 571 567 570
  1719. f 567 571 568
  1720. f 349 568 571
  1721. f 568 321 320
  1722. f 568 349 321
  1723. f 572 517 521
  1724. f 517 572 569
  1725. f 573 569 572
  1726. f 569 573 570
  1727. f 574 570 573
  1728. f 570 574 571
  1729. f 358 571 574
  1730. f 571 350 349
  1731. f 571 358 350
  1732. f 575 521 525
  1733. f 521 575 572
  1734. f 576 572 575
  1735. f 572 576 573
  1736. f 577 573 576
  1737. f 573 577 574
  1738. f 353 574 577
  1739. f 574 309 358
  1740. f 574 313 309
  1741. f 574 322 313
  1742. f 574 348 322
  1743. f 574 353 348
  1744. f 578 525 529
  1745. f 525 578 575
  1746. f 579 575 578
  1747. f 575 579 576
  1748. f 580 576 579
  1749. f 576 580 577
  1750. f 351 577 580
  1751. f 577 354 353
  1752. f 577 352 354
  1753. f 577 351 352
  1754. f 581 529 533
  1755. f 529 581 578
  1756. f 582 578 581
  1757. f 578 582 579
  1758. f 583 579 582
  1759. f 579 583 580
  1760. f 583 332 580
  1761. f 331 580 332
  1762. f 351 580 331
  1763. f 584 533 537
  1764. f 533 584 581
  1765. f 585 581 584
  1766. f 581 585 582
  1767. f 586 582 585
  1768. f 582 586 583
  1769. f 583 586 335
  1770. f 583 330 329
  1771. f 583 335 330
  1772. f 329 332 583
  1773. f 587 537 541
  1774. f 537 587 584
  1775. f 588 584 587
  1776. f 584 588 585
  1777. f 589 585 588
  1778. f 585 589 586
  1779. f 586 589 327
  1780. f 335 586 336
  1781. f 327 336 586
  1782. f 543 541 485
  1783. f 541 543 587
  1784. f 545 587 543
  1785. f 587 545 588
  1786. f 547 588 545
  1787. f 588 547 589
  1788. f 334 589 547
  1789. f 589 334 326
  1790. f 326 327 589
  1791. '''.splitlines()
  1792.  
  1793. for line in teapot:
  1794.     if line:
  1795.         if line[0] == 'v':
  1796.             number = line[2:].split()
  1797.             vertexes.append( (   float(number[0]),
  1798.                                 -float(number[1]),
  1799.                                  float(number[2])))
  1800.         if line[0] == 'f':
  1801.             number = line[2:].split()
  1802.             triangles.append( (
  1803.                 vertexes[int(number[0])-1],
  1804.                 vertexes[int(number[1])-1],
  1805.                 vertexes[int(number[2])-1] )
  1806.                 )
  1807.  
  1808. for line in teapot:
  1809.     if line:
  1810.         if line[0] == 'v':
  1811.             number = line[2:].split()
  1812.             vertexes.append( (   float(number[0]),
  1813.                                 -float(number[1]),
  1814.                                  float(number[2])))
  1815.         if line[0] == 'f':
  1816.             number = line[2:].split()
  1817.             triangles.append( (
  1818.                 vertexes[int(number[0])-1],
  1819.                 vertexes[int(number[1])-1],
  1820.                 vertexes[int(number[2])-1] )
  1821.                 )
  1822.  
  1823. from tkinter import *
  1824. from PIL import Image, ImageDraw
  1825. from math import *
  1826. import random
  1827.  
  1828. ww = 800
  1829. hh = 600
  1830. root = Tk()
  1831. root.title("Rotating Teapot")
  1832. root.geometry("%dx%d+0+0"%(ww,hh))
  1833. canvas = Canvas(root, width=ww, height=hh)
  1834. canvas.grid()
  1835. root.update()
  1836. xoffset = ww/2
  1837. yoffset = hh/2
  1838.  
  1839. def click(event):
  1840.     cv.rx, cv.ry = (event.x,event.y)
  1841.  
  1842. # mouse to rotate object
  1843. def drag(event):
  1844.     cv.x_rotate = ((cv.x_rotate + event.x - cv.rx) / 100.0)
  1845.     cv.y_rotate = ((cv.y_rotate + event.y - cv.ry) / 100.0)
  1846.  
  1847. root.bind('<Button-1>',click)
  1848. root.bind('<B1-Motion>',drag)
  1849.  
  1850. # arrow keys, A and Z to move object, space to reset all
  1851. def key(event):
  1852.     if event.keysym=='up':
  1853.         cv.y -= 1
  1854.     elif event.keysym=='down':
  1855.         cv.y += 1
  1856.     elif event.keysym=='right':
  1857.         cv.x += 1
  1858.     elif event.keysym=='left':
  1859.         cv.x -= 1
  1860.     elif event.keysym in 'Aa':
  1861.         cv.z += 1
  1862.     elif event.keysym in 'Zz':
  1863.         cv.z -= 1
  1864.     elif event.keysym in "Shift_L Shift_R":
  1865.         cv.shift = 1
  1866.     elif event.keysym==' ':
  1867.         cv.x,cv.y,cv.z = 0,0,0
  1868.  
  1869. root.bind('<Key>',key)
  1870.  
  1871. class Cv(): 0
  1872. cv=Cv()
  1873. cv.x_rotate = cv.y_rotate = cv.z_rotate = 0
  1874. cv.x,cv.y,cv.z = 0,0,0
  1875. cv.scale = 500
  1876. theta = 2*pi/100
  1877.  
  1878. def plot(triangle):
  1879.     scale = cv.scale
  1880.     canvas.create_polygon([
  1881.             ( (triangle[0][0] * scale) + xoffset,
  1882.             (triangle[0][1] * scale) + yoffset ),
  1883.             ( (triangle[1][0] * scale) + xoffset,
  1884.             (triangle[1][1] * scale) + yoffset ),
  1885.             ( (triangle[2][0] * scale) + xoffset,
  1886.             (triangle[2][1] * scale) + yoffset ),
  1887.             ( (triangle[0][0] * scale) + xoffset,
  1888.             (triangle[0][1] * scale) + yoffset ), ],
  1889.             fill = 'black', outline = 'black')
  1890.            
  1891. def draw():
  1892.     root.update()
  1893.     canvas.delete('all')
  1894.  
  1895. while 1:
  1896.     for triangle in triangles:
  1897.         new_triangle = []
  1898.         for vertex in triangle:
  1899.             x = vertex[0]
  1900.             y = vertex[1]
  1901.             z = vertex[2]
  1902.             x_rotate = x * cos(cv.x_rotate) + z * sin(cv.x_rotate)
  1903.             y_rotate = y * cos(cv.y_rotate) + z * sin(cv.y_rotate)
  1904.             # apply user input translation
  1905.             x = x_rotate + cv.x
  1906.             y = y_rotate + cv.y
  1907.             z += cv.z
  1908.             new_triangle.append((x,y,z))
  1909.         plot(new_triangle)
  1910.     draw()
  1911.     # hold shift to just rotate on z-axis
  1912.     cv.shift = 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement