Advertisement
Guest User

Planet simulation real time and size

a guest
Aug 22nd, 2014
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 18.23 KB | None | 0 0
  1.     ##################################################################################
  2.     #
  3.     # Kinematiikan harjoituksia 2
  4.     # Ohjelmoi kuu-maa-animaatio tasaisella ympyräliikkeellä xy-tasossa
  5.     # Kohdat 1., 2. ja 3.
  6.     # Alkuarvot http://fi.wikipedia.org/wiki/Kuu)
  7.     # Määritä alkuarvot siten, että
  8.     # - Maa sijaitsee origossa paikoillaan
  9.     # - Kuu kiertää maata ympyräradalla
  10.     # Etsi sopiva arvot ympyräliikkeen liikeyhtälöön (t:n kertoimeksi) niin,
  11.     # että kuun kiertoajaksi tulee näytöllä n. 28 vrk (tark Wikipediassa)
  12.     # Simulaation kannattaa tietenkin esittää nopeutettuna muuttamalla arvoa rate()
  13.     # Koordinaatiston ajan kuluminen ilmoitetaan tekstikehyksellä grafiikkaikkunassa
  14.     #
  15.     # Jori Niskanen
  16.     #
  17.     # 19.9.2013
  18.     #
  19.     ##################################################################################
  20.      
  21. from visual import *
  22. from math import *
  23.  
  24. #Ohjelman alustus tehtävän mukainen/laaja
  25. Mode = 2
  26. while Mode != 1 and Mode != 2:
  27.     Mode = input("Missä tilassa sovellus käynnistetään?\n1) Tehtävä     2) Laaja\nValinta: ")
  28.  
  29. #Infonäyttö
  30. sceneinfo = display(title="Kinematiikka 2. Aurinko, Maa ja Kuu: Info",x=0, y=0, width=1000, height=220, userzoom = False, userspin = False)
  31. sceneinfo.range = (10,10,10)
  32. timeLabel1 = label(pos=(6.1,-0.5,0))
  33. timeLabel2 = label(pos=(6.1,0.5,0))
  34. timeLabel3 = label(pos=(6.1,1.5,0))
  35. timeLabel4 = label(pos=(-7.5,0.5,0))
  36. timeLabel5 = label(pos=(-7.5,1.3,0))
  37. timeLabel7 = label(pos=(-1.4,-1.5,0))
  38. timeLabel6 = label(pos=(-1.4,1.3,0))
  39. timeLabel8 = label(pos=(-1.4,0,0))
  40. timeLabel5.text = "Ohjaa simulaation nopeutta nuolilla\nNuolet 0.1  ctrl+nuolet 1"
  41. timeLabel6.text = "Nuolet sivuille vaihtavat seurattavaa kappaletta\nEnd pysayttaa seurattavan kappaleen liikkeen"
  42. timeLabel8.text = "Suurilla dt-arvoilla kiertoajat saattavat olla viallisia\nKaytetaan dt-arvoa laskentamarginaalina"
  43. timeLabel7.text = "Maa liike= True"
  44. if Mode == 1: timeLabel7.text = "Maa liike= False"
  45.  
  46. #Simulaationäyttö
  47. scene = display(title="Kinematiikka 2. Aurinko, Maa ja Kuu: Simulaatio",x=0, y=220, width=1000, height=800,forward=(-1,-0.08,-0.1))
  48.  
  49.      
  50.  
  51.     # Alla netistä otettu hyödyllinen funktio make_time_string(t), joka ilmoittaa parametreina annetun
  52.     # ajan t sopivina aikayksikköinä
  53. def make_time_string(t):
  54.     "Accept a number of seconds, return a relative string."
  55.     if t < 60: return "%02i seconds"%t
  56.     mins,secs = divmod(t, 60)
  57.     if mins < 60: return "%02i minutes %02i seconds"%(mins,secs)
  58.     hours, mins = divmod(mins,60)
  59.     if hours < 24: return "%02i hours %02i minutes %02i seconds"%(hours,mins, secs)
  60.     days,hours = divmod(hours,24)
  61.     return "%02i days %02i hours %02i minutes %02i seconds"%(days,hours,mins,secs)
  62.  
  63.  
  64.  
  65. 'Simulate' # Simuloidaanko kappaleen liike (True/False)
  66. 'Orbiting' # Mitä kappaletta kyseinen kappale kiertää
  67. 'Semi-major_axis' # Kiertoradan keskietäisyys kierrettävästä esineestä. http://fi.wikipedia.org/wiki/Radan_isoakselin_puolikas
  68.         #Isoakselin puolikas on ellipsin pisimmän halkaisijan puolikas. Tätä rataelementtiä käytetään tyypillisesti kuvaamaan ellipsiradalla kiertävän kappaleen etäisyyttä keskuskappaleesta, joka sijaitsee ellipsin yhdessä polttopisteessä.
  69.         #Isoakselin puolikasta nimitetään usein "keskietäisyydeksi". Nimitys on siinä mielessä perusteltu, että isoakselin puolikas on kappaleen suurimman ja pienimmän etäisyyden keskiarvo
  70. 'Eccentricity' # Eksentrisyys. Lasketaan SMA:n avulla kiertoradan elliptisyys
  71. 'Orbital_period' #Kiertoaika kierrettävän kappaleen ympäri sekunneissa
  72. 'Inclination' # Kiertoradan inklinaatio muodossa radians(inc) tai ilman inklinaatiota 0. Ecliptic inclination
  73. 'Radius' # Objektin säde
  74. 'Sidereal_rotation' #0=ei pyörimistä. Muuten pyörähdysaika x sekuntia
  75. 'Axial_tilt' # akselin kaltevuus muodossa radians(tilt°)
  76. 'Material' # Ei toimi vielä! Määritettävä "käsin" objektin alustuksessa
  77. 'Ascend_Longitude' #Longitude of the Ascending Node
  78. 'Ascend_Longitude_Progress_W' # 2*pi/s Ascend Longituden Progressio s. 2*pi/-s Regressiossa -s
  79. 'Argument_of_periapsis'
  80. 'Argument_of_periapsis_Progress_W'
  81. #lightyear = 9.4607e15 #valovuosi
  82. #sirius_et = 8.60*lightyear
  83. #solarRadius = 695500000 #      1.711
  84. #rSirius = 1.711*solarRadius*10000
  85.  
  86.  
  87.  
  88.  
  89. Objects = ['Aurinko', 'Merkurius', 'Venus', 'Maa', 'Kuu', 'Mars', 'Phobos', 'Deimos'] #Simuloitavat kappaleet. Kierrettävän kappaleen oltava ennen kiertävää kappaletta.
  90. Item = {}
  91. Data = {}
  92. Data['Aurinko'] = {'Simulate': False,'Orbiting':vector(0,0,0),'Semi-major_axis':0,'Eccentricity':0,'Orbital_period':0,'Inclination':0,'Radius':696342000,'Sidereal_rotation':0,'Axial_tilt':0,'Material':'emissive'}
  93. Data['Maa'] = {'Simulate':True,'Orbiting':'Aurinko','Semi-major_axis':1496.0e8,'Eccentricity':0.01671123,'Orbital_period':31558150,'Inclination':0,'Radius':6378100,'Sidereal_rotation':86164.1,'Axial_tilt':radians(23.4392810833),'Material':'BlueMarble','Ascend_Longitude':radians(348.73936)}
  94. Data['Kuu'] = {'Simulate':True,'Orbiting':'Maa','Semi-major_axis':384400000,'Eccentricity':0.0549,'Orbital_period':2360622,'Inclination':radians(5.1454),'Radius':1737100,'Sidereal_rotation':2360584.68,'Axial_tilt':radians(1.5424),'Material':'wood','Ascend_Longitude':radians(0),'Ascend_Longitude_Progress_W':2*pi/-586958823,'Argument_of_periapsis_Progress_W':2*pi/279278795} #Ascend Longitude regress
  95.  
  96. Data['Merkurius'] = {'Simulate':True,'Orbiting':'Aurinko','Semi-major_axis':57909100000,'Eccentricity':0.205630,'Orbital_period':7.60053e6,'Inclination':radians(7.005),'Radius':2439700,'Sidereal_rotation':5.06701e6,'Axial_tilt':radians(2.11),'Material':'BlueMarble','Ascend_Longitude':radians(48.331)}
  97. Data['Venus'] = {'Simulate':True,'Orbiting':'Aurinko','Semi-major_axis':108208000000,'Eccentricity':0.0067,'Orbital_period':1.94142e7,'Inclination':radians(3.39458),'Radius':6051800,'Sidereal_rotation':-2.09968e7,'Axial_tilt':radians(177.36),'Material':'BlueMarble','Ascend_Longitude':radians(76.678)}
  98. Data['Mars'] = {'Simulate':True,'Orbiting':'Aurinko','Semi-major_axis':227939100000,'Eccentricity':0.093315,'Orbital_period':5.93543e7,'Inclination':radians(1.850),'Radius':3396200,'Sidereal_rotation':88642.7,'Axial_tilt':radians(25.19),'Material':'BlueMarble','Ascend_Longitude':radians(49.562)}
  99.  
  100. Data['Phobos'] = {'Simulate':True,'Orbiting':'Mars','Semi-major_axis':9377200,'Eccentricity':0.0151,'Orbital_period':27553.8,'Inclination':radians(26.04),'Radius':11100,'Sidereal_rotation':27553.8,'Axial_tilt':radians(0),'Material':'BlueMarble','Ascend_Longitude':radians(0)}
  101. Data['Deimos'] = {'Simulate':True,'Orbiting':'Mars','Semi-major_axis':23460000,'Eccentricity':0.0002,'Orbital_period':109074.816,'Inclination':radians(27.58),'Radius':6200,'Sidereal_rotation':109074.816,'Axial_tilt':radians(0),'Material':'BlueMarble','Ascend_Longitude':radians(0)}
  102.  
  103. Data['Kuu']['Eccentricity'] = 0.5
  104. #Data['Kuu']['Ascend_Longitude_Progress_W'] = Data['Kuu']['Ascend_Longitude_Progress_W']*100
  105. #Data['Kuu']['Argument_of_periapsis_Progress_W'] = 0
  106.  
  107. Asteroid = {}
  108. Population = {}
  109. i = 0
  110. Asteroid_tot = 0;
  111. while i < Asteroid_tot:
  112.     #Longitude of the ascending node = Ascend_Longitude
  113.     Asteroid[i] = {'Semi-major_axis':random.randint(0, 200000)*1000000+239000000000,'Eccentricity':random.randint(0,1000)/10000,'Orbital_period':0,'Radius':random.randint(1000,339620),'Inclination':radians(random.randint(0,10000)/1000),'Rand':random.randint(0,100000)*10e6,'Ascend_Longitude':radians(random.randint(0,360))}
  114.     Orb = Asteroid[i]['Semi-major_axis'] /227939100000
  115.     Asteroid[i]['Orbital_period'] = 5.93543e7*Asteroid[i]['Semi-major_axis']/227939100000
  116.     spos = rotate(vector(0,0,0) + Asteroid[i]['Semi-major_axis']*vector((1-Asteroid[i]['Eccentricity'])*cos(Asteroid[i]['Rand'])*cos(Asteroid[i]['Inclination']),-(1+Asteroid[i]['Eccentricity'])*cos(Asteroid[i]['Rand'])*sin(Asteroid[i]['Inclination']),sin(Asteroid[i]['Rand'])),Asteroid[i]['Ascend_Longitude'],vector(0,1,0))
  117.     Population[i] = sphere( pos= spos, radius= Asteroid[i]['Radius'], make_trail=True)
  118.     Asteroid[i]['W_orbit'] = -2*pi/Asteroid[i]['Orbital_period']
  119.     #Population[i].trail_object.color=Color("#999999")
  120.     i += 1
  121.     # 1. Ohjelmoi
  122.  
  123. if Mode == 1:
  124.     Objects = ['Maa', 'Kuu']
  125.     Data['Maa']['Simulate'] = False
  126.  
  127.     # 2. Ohjelmoi :
  128.     # Kuvaa maa ja kuu palloina (todelliset säteet voi suurentaa visualisoinnin vuoksi
  129.     # aseta kuulle attribuutiksi make_trail= True, jolloin kiertorata piirtyy ikkunaan
  130. else: #Ei tehtävämoodissa tehdään aurinko
  131.     spos = Data['Aurinko']['Orbiting']
  132.     sradius = Data['Aurinko']['Radius']
  133.     smaterial = Data['Aurinko']['Material']
  134.     Item['Aurinko'] = sphere (pos=spos, radius=sradius, material=materials.emissive) #Aurinko origossa. Kokona auringon koko. Materiaalina hohtava valoa varten
  135.     local_light(pos=spos, color=color.white) #Tehdään auringosta valonlähde
  136.     scene.lights = [] #Valo tulee vain auringosta
  137.  
  138.  
  139. s = 'Maa'
  140. if (Mode == 2):spos = Item[Data[s]['Orbiting']].pos + Data[s]['Semi-major_axis']*vector((1-Data[s]['Eccentricity'])*cos(0)*cos(Data[s]['Inclination']),-(1+Data[s]['Eccentricity'])*cos(0)*sin(Data[s]['Inclination']),sin(0))
  141. else: spos = vector(0,0,0)
  142. sradius = Data[s]['Radius']
  143. #Item[s] = sphere( pos= rotate(spos,Data[s]['Ascend_Longitude'],vector(0,1,0)), radius= sradius,material=materials.BlueMarble,make_trail=True)
  144.  
  145. loop_len = len(Objects) #Tarkistetaan kappaleiden lukumäärä muuttujaan käyttöä varten
  146. if Mode == 1: i = 1
  147. else: i = 1
  148. while i < loop_len:
  149.     s = Objects[i]
  150.     spos = Item[Data[s]['Orbiting']].pos + Data[s]['Semi-major_axis']*vector((1-Data[s]['Eccentricity'])*cos(0)*cos(Data[s]['Inclination']),-(1+Data[s]['Eccentricity'])*cos(0)*sin(Data[s]['Inclination']),sin(0))
  151.     sradius = Data[s]['Radius']
  152.     Item[s] = sphere( pos= rotate(spos,Data[s]['Ascend_Longitude'],vector(0,1,0)), radius= sradius,material=materials.earth ,make_trail=True)
  153.     i += 1
  154.  
  155.  
  156.  
  157. Item['Maa'].trail_object.color=color.green  ################
  158. Item['Kuu'].trail_object.color=color.orange #Seurannan väri#
  159.  
  160. if Mode == 2:
  161.     Item['Mars'].trail_object.color=color.red #Seurannan väri#
  162.     Item['Phobos'].trail_object.color=color.green #Seurannan väri#
  163.     Item['Deimos'].trail_object.color=color.orange #Seurannan väri#
  164.  
  165.  
  166.  
  167.    
  168.      
  169.     ##################################################################################
  170.     # simulaatioluuppi
  171.     ##################################################################################
  172.  
  173. scene.forward = -norm(Item['Maa'].pos)+vector(0,-0.2,0) #Käännetään kuva oikeaan suuntaan
  174. Size_multiplier = 1 #Kappaleiden halkaisijoiden kerroin
  175. t=0L
  176. dt=0.001 # simulaation nopeutta voi muuttaa ohjelmassa
  177. timeLabel4.text = "dt= "+str(dt)
  178.  
  179. finished=True
  180.  
  181.  # Oletuksena seurataan maata
  182. stepper = 0 #Asteroid simulations
  183. i = 0
  184. while i < loop_len: #Viimeistellään kappaleet ja data ennen simulointia
  185.     s = Objects[i]
  186.     if ( s == 'Maa' ): cam_follow = i #Seurataan alussa maata
  187.     if (Data[s]['Sidereal_rotation']): #Jos kappaleelle on määritetty pyöriminen, pyöräytetään z-akselin suhteen akselin kallistumisen verran
  188.         Item[s].rotate(angle=Data[s]['Axial_tilt'], axis=vector (0,0,1) , origin=Item[s].pos)
  189.     if (Data[s]['Orbital_period']):
  190.         Data[s]['W_orbit'] = -2*pi/Data[s]['Orbital_period'] #Maan kiertokulman laskeminen
  191.         Data[s]['W_axis'] = 2*pi/Data[s]['Sidereal_rotation']    #Maan pyörimisen kiertokulman laskeminen
  192.         Data[s]['W_axis_vect'] = vector(0,1,0).rotate(angle=Data[s]['Axial_tilt'], axis=vector (0,0,1)) #Lasketaan pyöräytys
  193.     if (Size_multiplier != 1):
  194.         Item[s].radius *= Size_multiplier #Muutetaan kappaleiden kokoa kertoimen mukaan
  195.    
  196.      
  197.     i += 1
  198. viiva = curve(pos=[(300000000,0,0),(0,0,0),(0,300000000,0),(0,0,0),(0,0,300000000),(0,0,0)])
  199.  
  200. #debugball = sphere(pos = (0,0,0), radius= 5000000, color=color.white, material=materials.wood)
  201.  
  202.  
  203. while finished :
  204.     rate(1000)
  205.     scene.center = Item[Objects[cam_follow]].pos #Pidetään katse tiukasti planeetassamme
  206.  
  207.     if dt <> 0:
  208.         # 3. Ohjelmoi kuun kiertoliike tähän
  209.         i = 0
  210.         while i < loop_len: #Käydään kaikki kappaleet läpi
  211.             s = Objects[i]
  212.             if (Data[s]['Simulate']):#Kappaleiden liike.
  213.                 if s == 'Kuu':
  214.                    
  215.                    
  216.  
  217.                     #pos1 = Item[Data[s]['Orbiting']].pos + rotate(vector(ecc1.x*cos(Data[s]['W_orbit']*t)*cos(Data[s]['Inclination']),ecc1.y*-cos(Data[s]['W_orbit']*t)*sin(Data[s]['Inclination']),Data[s]['Semi-major_axis']*sin(Data[s]['W_orbit']*t)),t*Data[s]['Ascend_Longitude_Progress_W'],vector(0,1,0))
  218.                     pos2 =rotate( Item[Data[s]['Orbiting']].pos + Data[s]['Semi-major_axis']*vector((1-Data[s]['Eccentricity'])*cos(radians(90))*cos(Data[s]['Inclination']),(1+Data[s]['Eccentricity'])*-cos(radians(90))*sin(Data[s]['Inclination']),sin(radians(90))),t*Data[s]['Ascend_Longitude_Progress_W'],vector(0,1,0))
  219.                     pos3 =rotate( Item[Data[s]['Orbiting']].pos + Data[s]['Semi-major_axis']*vector((1-Data[s]['Eccentricity'])*cos(radians(0))*cos(Data[s]['Inclination']),(1+Data[s]['Eccentricity'])*-cos(radians(0))*sin(Data[s]['Inclination']),sin(radians(0))),t*Data[s]['Ascend_Longitude_Progress_W'],vector(0,1,0))
  220.                     pos1 =rotate( Item[Data[s]['Orbiting']].pos + Data[s]['Semi-major_axis']*vector((1-Data[s]['Eccentricity'])*cos(Data[s]['W_orbit']*t)*cos(Data[s]['Inclination']),(1+Data[s]['Eccentricity'])*-cos(Data[s]['W_orbit']*t)*sin(Data[s]['Inclination']),sin(Data[s]['W_orbit']*t)),t*Data[s]['Ascend_Longitude_Progress_W'],vector(0,1,0))
  221.                     #debugball.pos = rotate( pos2,t*Data[s]['Ascend_Longitude_Progress_W']-t*Data[s]['Argument_of_periapsis_Progress_W'],norm(cross(pos3, pos2)))#-t*Data[s]['Ascend_Longitude_Progress_W']
  222.            
  223.                     #if pos1.x < 0: pos3 = -pos1
  224.                     #elif pos1.x >= 0: pos3 = pos1
  225.                     #pos2 = norm(pos2)
  226.                     #viiva.pos = [(0,0,0),-norm(cross(pos3, pos2))*300000000,(0,0,0),rotate(-norm(cross(pos3, pos2))*500000000,radians(90),vector(0,0,1)),(0,0,0),rotate(-norm(cross(pos3, pos2))*500000000,radians(90),vector(1,0,0))]
  227.                     Item[s].pos = rotate( pos1,t*Data[s]['Ascend_Longitude_Progress_W']-t*Data[s]['Argument_of_periapsis_Progress_W'],norm(cross(pos3, pos2)))#-t*Data[s]['Ascend_Longitude_Progress_W']
  228.                
  229.                 else:
  230.                     Item[s].pos =rotate( Item[Data[s]['Orbiting']].pos + Data[s]['Semi-major_axis']*vector((1-Data[s]['Eccentricity'])*cos(Data[s]['W_orbit']*t)*cos(Data[s]['Inclination']),(1+Data[s]['Eccentricity'])*-cos(Data[s]['W_orbit']*t)*sin(Data[s]['Inclination']),sin(Data[s]['W_orbit']*t)),Data[s]['Ascend_Longitude'],vector(0,1,0))
  231.                
  232.                 #Item[s].pos =                  #Muutetaan kappaleen sijainti
  233.                 #Item[Data[s]['Orbiting']].pos+ #Kierrettävän kappaleen sijainti +
  234.                 #Data[s]['Semi-major_axis']*    #SMA * vektori
  235.                 #x=(1-Data[s]['Eccentricity'])*cos(Data[s]['W_orbit']*t)*cos(Data[s]['Inclination'])
  236.                 #y=(1+Data[s]['Eccentricity'])*-cos(Data[s]['W_orbit']*t)*sin(Data[s]['Inclination'])
  237.                 #z=sin(Data[s]['W_orbit']*t)
  238.  
  239.  
  240.  
  241.             if (Data[s]['Sidereal_rotation']): #Pyöritetään kappaleita lasketun vektorin ympäri
  242.                 Item[s].rotate(angle=Data[s]['W_axis']*dt, axis=Data[s]['W_axis_vect'] , origin=Item[s].pos)
  243.  
  244.             i += 1 #
  245.         stepper += 1
  246.         if stepper == 10 :
  247.             i = 0
  248.             while i < Asteroid_tot:
  249.                 Population[i].pos = rotate(vector(0,0,0) + Asteroid[i]['Semi-major_axis']*vector((1-Asteroid[i]['Eccentricity'])*cos(Asteroid[i]['W_orbit']*t+Asteroid[i]['Rand'])*cos(Asteroid[i]['Inclination']),(1+Asteroid[i]['Eccentricity'])*-cos(Asteroid[i]['W_orbit']*t+Asteroid[i]['Rand'])*sin(Asteroid[i]['Inclination']),sin(Asteroid[i]['W_orbit']*t+Asteroid[i]['Rand'])),Asteroid[i]['Ascend_Longitude'],vector(0,1,0))
  250.                 i += 1
  251.             stepper = 0
  252.    
  253.  
  254.    
  255.     # tekstikehyksien päivitys
  256.     text = "Kulunut aika: " + make_time_string(t)
  257.     timeLabel3.text=text
  258.     if ((t) % 2360622 < dt): #Tulostetaan kiertoaika sen täyttyessä. Suurella dt-arvolla voi poiketa oikeasta ajasta. Otetaan jakojäännös kuluneesta ajasta kiertokulmalla.
  259.         text="Kuunkierto: " + make_time_string(t)
  260.         print text
  261.         timeLabel2.text=text
  262.     if ((t) % 31558150 < dt):
  263.         text="Maankierto: " + make_time_string(t)
  264.         print text
  265.         timeLabel1.text=text
  266.  
  267.     t+=dt
  268.      
  269.     if scene.kb.keys or sceneinfo.kb.keys: # onko painettu?
  270.         if scene.kb.keys: key = scene.kb.getkey() #Kummassa ikkunassa painettu
  271.         if sceneinfo.kb.keys: key = sceneinfo.kb.getkey()
  272.         if key == "down":
  273.             dt -= 0.1
  274.         elif key == "ctrl+down":
  275.             dt -= 1
  276.         elif key == "shift+down":
  277.             dt = 0
  278.         elif key == "up":
  279.             dt += 0.1
  280.         elif key == "ctrl+up":
  281.             dt += 1
  282.         elif key == "shift+up":
  283.             dt += 10
  284.         elif key == "left":
  285.             cam_follow -= 1
  286.             print degrees(diff_angle(Item['Kuu'].pos, vector(0,1,0)))%90
  287.         elif key == "right":
  288.             cam_follow += 1
  289.             print cross(pos1,Item['Maa'].pos)
  290.             print Item['Maa'].pos
  291.             print norm(pos1)
  292.             print norm(cross(pos3, pos2))
  293.             Item['Kuu'].pos += norm(cross(pos3, pos2))*500000
  294.             Item['Kuu'].trail_object.pos = ()
  295.         if key == "end": #Hallitaan kappaleen liikkumista end-painikkeella. Oletuksena simuloimattomien kappaleiden simulointi kaataa ohjelman
  296.             if Data[Objects[cam_follow]]['Simulate']: Data[Objects[cam_follow]]['Simulate'] = False
  297.             else: Data[Objects[cam_follow]]['Simulate'] = True
  298.            
  299.         if (cam_follow < 0): cam_follow = 0 #Pidetään seurattavan kappaleen raja-arvot hallinnassa
  300.         elif (cam_follow >= loop_len): cam_follow -= 1
  301.         timeLabel7.text = Objects[cam_follow]+" liike= " + str(Data[Objects[cam_follow]]['Simulate'])
  302.  
  303.        
  304.         timeLabel4.text = "dt= "+str(dt)
  305.  
  306.  
  307.             #if Item['Maa'].material == materials.earth: Item['Maa'].material = materials.BlueMarble
  308.             #else: Item['Maa'].material = materials.earth
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement