Beispiel #1
0
def init_wall() -> Body:
    """Инициализировать объект *стенки*, разбив его на частицы.

    :return: Объект *стенки* типа ``Body``.
    """
    w = Body(mass=1.5, size=(.15, .75), name='wall', color=(128, 128, 128), pos=np.array([.3, 0]))
    w.break_into_particles(n=35, dim='w', kind='wall')
    print_n_particles(w)
    return w
Beispiel #2
0
def init_striker() -> Body:
    """Инициализировать объект *ударника*, разбив его на частицы.

    :return: Объект *ударника* типа ``Body``.
    """
    s = Body(mass=1., size=(.15, .025), name='striker', color=(0, 0, 0), pos=np.array([0.16, 0.]), rotate_deg=30)
    s.break_into_particles(n=15, dim='h', kind='striker')
    print_n_particles(s)
    return s
Beispiel #3
0
def make_some_data_for_report():
    """Вспомогательная функция чисто для отчёта."""
    print("\nВспомогательная функция 'make_some_data_for_report'...")

    # Два тела - стенка и ударник
    wall = Body(mass=5, size=(10, 30), name='wall', color=(128, 128, 128), pos=np.array([20, 0]))
    striker = Body(mass=1, size=(10, 3), name='striker', color=(0, 0, 0), pos=np.array([0, 0]), rotate_deg=30)
    # Контрольный вывод
    print(wall, striker, sep='\n')
    # Разбивка тел на частицы
    wall.break_into_particles(n=25, dim='w', kind='wall')
    striker.break_into_particles(n=21, dim='h', kind='striker')
    # Вывод количества частиц в консоль
    print_n_particles(wall)
    print_n_particles(striker)
    # Показ тел
    wall.save_image()
    striker.save_image()