Пример #1
0
 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)
Пример #2
0
def open_file_dialog():
    """Открывает диалоговое окно выбора имени файла и вызывает
    функцию считывания параметров системы небесных тел из данного файла.
    Считанные объекты сохраняются в глобальный список space_objects
    """
    global space_objects
    global perform_execution
    perform_execution = False
    pygame.display.update()  # удаление старых изображений планет
    in_filename = askopenfilename(filetypes=(("Text file", ".txt"),))
    space_objects = read_space_objects_data_from_file(in_filename)
    max_distance = max([max(abs(obj.x), abs(obj.y)) for obj in space_objects])
    calculate_scale_factor(max_distance)
    draw_planets()
Пример #3
0
def open_file():
    """Открывает диалоговое окно выбора имени файла и вызывает
    функцию считывания параметров системы небесных тел из данного файла.
    Считанные объекты сохраняются в глобальный список space_objects
    """
    global space_objects
    global browser
    global model_time

    model_time = 0.0
    in_filename = "solar_system.txt"
    space_objects = input.read_space_objects_data_from_file(in_filename)
    max_distance = max(
        [max(abs(obj.obj.x), abs(obj.obj.y)) for obj in space_objects])
    vis.calculate_scale_factor(max_distance)
Пример #4
0
def open_file_dialog():
    """Открывает диалоговое окно выбора имени файла и вызывает
    функцию считывания параметров системы небесных тел из данного файла.
    Считанные объекты сохраняются в глобальный список space_objects
    """
    global space_objects
    global perform_execution
    global Scale

    perform_execution = False
    for obj in space_objects:
        space.delete(obj.image)  # удаление старых изображений планет
    in_filename = tkinter.filedialog.askopenfilename(filetypes=(("Text file", ".txt"),))
    space_objects = solar_input.read_space_objects_data_from_file(in_filename)
    max_distance = max([max(abs(obj.x), abs(obj.y)) for obj in space_objects])

    Scale = solar_vis.calculate_scale_factor(max_distance)

    for obj in space_objects:
        if obj.type == 'Star':
            solar_vis.create_star_image(space, obj)
        elif obj.type == 'Planet':
            solar_vis.create_planet_image(space, obj)
        else:
            print(obj.type)
            raise AssertionError()

    filel = open("Test.txt", "w")
    filel.close()
Пример #5
0
def open_file_dialog():
    """Открывает диалоговое окно выбора имени файла и вызывает
    функцию считывания параметров системы небесных тел из данного файла.
    Считанные объекты сохраняются в глобальный список space_objects
    """
    global space_objects
    global perform_execution
    perform_execution = False
    for obj in space_objects:
        space.delete(obj.image)  # удаление старых изображений планет
    in_filename = fd.askopenfilename(filetypes=(("Text file", ".txt"), ))
    space_objects = si.read_space_objects_data_from_file(in_filename)
    max_distance = max([max(abs(obj.x), abs(obj.y)) for obj in space_objects])
    sv.calculate_scale_factor(max_distance)

    for obj in space_objects:
        if obj.type == 'star':
            sv.create_star_image(space, obj)
        elif obj.type == 'planet':
            sv.create_planet_image(space, obj)
        else:
            raise AssertionError()

    sv.update_system_name(space, in_filename)