def execution(): """Функция исполнения -- выполняется циклически, вызывая обработку всех небесных тел, а также обновляя их положение на экране. Цикличность выполнения зависит от значения глобальной переменной perform_execution. При perform_execution == True функция запрашивает вызов самой себя по таймеру через от 1 мс до 100 мс. """ global physical_time recalculate_space_objects_positions(space_objects, physical_time) for body in space_objects: update_object_position(screen, body)
def load(self, filename): self.destroy_all() self.bodies.clear() configs = json.load(open(filename)) for config in configs: self.bodies.append(SpaceBody(**config)) calculate_scale_factor(self) calculate_v_scale_factor(self) for body in self.bodies: create_image(self.canvas, body) update_object_position(self, body)
def execution(): """Функция исполнения -- выполняется циклически, вызывая обработку всех небесных тел, а также обновляя их положение на экране. Цикличность выполнения зависит от значения глобальной переменной perform_execution. При perform_execution == True функция запрашивает вызов самой себя по таймеру через от 1 мс до 100 мс. """ global physical_time global displayed_time sm.recalculate_space_objects_positions(space_objects, time_step.get()) for body in space_objects: sv.update_object_position(space, body) physical_time += time_step.get() displayed_time.set("%.1f" % physical_time + " seconds gone") if perform_execution: space.after(101 - int(time_speed.get()), execution)
def redraw(self): for body in self.bodies: update_object_position(self, body)