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
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
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()