Advertisement
Guest User

Untitled

a guest
Feb 18th, 2019
1,506
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.50 KB | None | 0 0
  1. import simple_draw as sd
  2. from random import uniform
  3.  
  4. sd.resolution = (1000, 700)
  5. # На основе кода из практической части реализовать снегопад:
  6. # - создать списки данных для отрисовки N снежинок
  7. # - нарисовать падение этих N снежинок
  8. # - создать список рандомных длинн лучей снежинок (от 10 до 100) и пусть все снежинки будут разные
  9. # Пригодятся функции
  10. # sd.get_point()
  11. # sd.snowflake()
  12. # sd.sleep()
  13. # sd.random_number()
  14. # sd.user_want_exit()
  15.  
  16. n = 15  # количество снежинок (чем их больше тех хуже анимация)
  17. x_list = []  # создаем пустой список координа х
  18. y_list = []  # создаем пустой список координат у
  19. a_list = []
  20. b_list = []
  21. c_list = []
  22. l_list = []
  23.  
  24. for _ in range(n):
  25.     y_points = sd.random_number(500, 600)  # создаем рандомные координаты х
  26.     x_points = sd.random_number(100, 1000)  # создаем рандомные координаты у
  27.     x_list.append(x_points)  # запись координат х в список (на последнее место)
  28.     y_list.append(y_points)  # запись координат у в список (на последнее место)
  29.     lengths = sd.random_number(10, 40)  # рандомный размер самой снежинки
  30.     factor_aa = round(uniform(0.3, 0.7), 2)  # рандомное место ответвления лучиков
  31.     factor_bb = round(uniform(0.25, 0.45), 2)  # рандомная длина лучиков
  32.     factor_cc = sd.random_number(10, 100)  # рандомный угол отклонения лучиков
  33.     l_list.append(lengths)  # запись координат размера снежинок в список
  34.     a_list.append(factor_aa)  # запись значений мест для отвлетвления лучиков
  35.     b_list.append(factor_bb)  # запись значений длины лучиков
  36.     c_list.append(factor_cc)  # запись значений для угла отклонения лучков
  37.  
  38.  
  39. def snowf(center, length, color, factor_a, factor_b, factor_c):  # ф-ция отрисовки снежинки
  40.     sd.snowflake(center, length, color, factor_a, factor_b, factor_c)  # отрисовка
  41.     x_list[i] += sd.random_number(-10, 10)
  42.  
  43.  
  44. while True:
  45.     for i in range(n):
  46.         point = sd.get_point(x_list[i], y_list[i])  # задаем координаты
  47.         fac_a = a_list[i]
  48.         fac_b = b_list[i]
  49.         fac_c = c_list[i]
  50.         l_length = l_list[i]
  51.         snowf(center=point,length=l_length, color=sd.COLOR_RED, factor_a=fac_a, factor_b=fac_b, factor_c=fac_c)  # вызываем ф-цию отрисовки снежинки
  52.         y_list[i] -= 44  # падаем на 10 пикс.
  53.         # x_list[i] += .5
  54.         if y_list[i] < 50:  # проверка упала ли снежинка
  55.             break  # остановка
  56.         point1 = sd.get_point(x_list[i], y_list[i])
  57.         snowf(center=point1, length=l_length, color=sd.COLOR_WHITE, factor_a=fac_a, factor_b=fac_b,
  58.               factor_c=fac_c)  # вызываем ф-цию отрисовки снежинки
  59.         sd.sleep(0.01)  # таймаут
  60.     if sd.user_want_exit():
  61.         break
  62.     # sd.clear_screen()
  63. sd.pause()
  64.  
  65. # зачет!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement