Beispiel #1
1
def main():
    points = [Point(x=230, y=450), Point(x=240, y=460), Point(x=230, y=470), Point(x=240, y=480)]
    polygon(point_list=points)
    points2 = [Point(p.x + 20, p.y + 20) for p in points]
    lines(point_list=points2, color=COLOR_DARK_ORANGE)
    line(start_point=Point(x=20, y=20), end_point=Point(x=40, y=300))
    square(left_bottom=Point(400, 300, ), side=100)
    rectangle(
        left_bottom=Point(x=200, y=200),
        right_top=Point(x=300, y=300),
        color=COLOR_DARK_GREEN
    )
    rectangle(
        left_bottom=Point(x=400, y=300),
        right_top=Point(x=300, y=400),
        color=COLOR_DARK_GREEN
    )
    sleep(2)
    clear_screen()
    vector(start=Point(x=230, y=260), angle=70, length=200, color=COLOR_PURPLE)
    for i in range(10):
        point = random_point()
        color = random_color()
        radius = random_number(20, 60)
        circle(center_position=point, radius=radius, color=color, width=0)
    sleep(2)
    clear_screen()
    for i in range(10):
        point = random_point()
        color = random_color()
        dx = random_number(30, 100)
        dy = random_number(30, 100)
        right_top = Point(x=point.x + dx, y=point.y + dy)
        ellipse(left_bottom=point, right_top=right_top, color=color)
    v3 = Vector(start_point=Point(0, 0), direction=45, length=50)
    for direction in range(0, 181, 20):
        v = Vector(start_point=Point(x=300, y=300), direction=direction, length=100)
        v.draw()
        v2 = Vector(start_point=v.end_point, direction=direction + 30, length=50)
        v2.draw(color=COLOR_GREEN)
        v2.add(v3)
        v2.draw(color=COLOR_ORANGE)
    snowflake(center=Point(), length=60, factor_b=0.2, factor_c=100)
    sleep(2)
    for k in range(2):
        y = 500
        for i in range(10):
            clear_screen()
            y -= 30
            for x in [100, 200, 300, 400, 500]:
                radius = random_number(30, 50)
                point = Point(x=x, y=y)
                snowflake(center=point, length=radius)
                mouse_point, mouse_buttons = get_mouse_state()
                print("mouse_state is {} + {}".format(mouse_point, mouse_buttons))
            if user_want_exit(sleep_time=0.1):
                break
        if user_want_exit(0):
            break
Beispiel #2
0
def snowflakes(quantity):
    x_list = []
    y_list = []
    size_list = []
    length_list = []
    for _ in range(quantity):
        new_x = sd.random_number(50, 1150)
        x_list.append(new_x)
        new_y = sd.random_number(0, 600)
        y_list.append(new_y)
        new_size = sd.random_number(10, 40)
        size_list.append(new_size)
        new_length = round(sd.random_number(10, 90) / 100, 1)
        length_list.append(new_length)
    while True:
        sd.start_drawing()
        sd.clear_screen()
        for i, x in enumerate(x_list):
            if y_list[i] < 0:
                y_list[i] = 600
            point = sd.get_point(x_list[i], y_list[i])
            sd.snowflake(center=point, length=size_list[i], factor_b=length_list[i])
            y_list[i] -= 10
        sd.finish_drawing()
        sd.sleep(0.1)
        if sd.user_want_exit():
            break
def snowfall(N):
    snowflake = []
    for _ in range(N):
        snowflake.append(([sd.random_number(-50, 1250), sd.random_number(550, 1600), sd.random_number(23, 47)]))

    while True:
        sd.start_drawing()
        for snow in snowflake:
            x, y, length = snow
            point = sd.get_point(x, y)

            sd.snowflake(center=point, length=length, color=sd.background_color, factor_a=0.6)
            if y > 50:
                snow[1] -= 10
                snow[0] -= 10
                point_fall = sd.get_point(x, y)
                sd.snowflake(point_fall, length=length, color=sd.COLOR_WHITE)
            else:
                last_point = sd.get_point(x, y - 1)
                sd.snowflake(last_point, length, color=sd.COLOR_WHITE)
                snow[1] += 1250

        sd.finish_drawing()
        sd.sleep(0.05)
        if sd.user_want_exit():
            break
        sd.clear_screen()
Beispiel #4
0
def main():
    sd.set_screen_size(600, 700)
    zero_screen()
    first_screen()
    sd.sleep(2)
    sd.clear_screen()
    second_screen()
    sd.sleep(2)
    sd.clear_screen()
    third_screen()
    sd.sleep(2)
    snowfall()
Beispiel #5
0
def snowflakes(quantity):
    for _ in range(quantity):
        new_x = sd.random_number(50, 1150)
        x_list.append(new_x)
        new_size = sd.random_number(10, 40)
        size_list.append(new_size)
        new_length = round(sd.random_number(10, 90) / 100, 1)
        length_list.append(new_length)
    for y in range(600, 0, -5):
        sd.clear_screen()
        for i, x in enumerate(x_list):
            point = sd.get_point(x, y)
            sd.snowflake(center=point,
                         length=size_list[i],
                         factor_b=length_list[i])
        sd.sleep(0.1)
Beispiel #6
0
def snowfall():
    for k in range(2):
        y = 500
        for i in range(10):
            sd.clear_screen()
            y -= 30
            for x in [100, 200, 300, 400, 500]:
                radius = sd.random_number(30, 50)
                point = sd.Point(x=x, y=y)
                sd.snowflake(center=point, length=radius)
                mouse_point, mouse_buttons = sd.get_mouse_state()
                print("mouse_state is {} + {}".format(mouse_point,
                                                      mouse_buttons))
            if sd.user_want_exit(sleep_time=0.1):
                break
        if sd.user_want_exit(0):
            break
Beispiel #7
0
def snowflake(x, y):
    a = 1
    while True:
        sd.clear_screen()
        for i in range(len(x)):
            point = sd.get_point(x[i],y[i])
            sd.snowflake(center=point, length=50, color='white')
            h = sd.randint(0, 20)
            y[i] -= h
            if y[i] < 50:
                break
            a = sd.randint(-1,1)

            x[i] = x[i] + h*a
        sd.sleep(0.05)
        if sd.user_want_exit():
            break
Beispiel #8
0
def snowfall():
    x = [randint(100, 500) for i in range(20)]
    y = [randint(450, 600) for i in range(20)]
    length_list = [randint(5, 50) for i in range(20)]

    while True:
        sd.clear_screen()
        for i in range(20):
            point = sd.get_point(x[i], y[i])
            sd.snowflake(center=point, length=length_list[i])
            y[i] += (randint(5, 15) * -1)
            if y[i] < 0:
                break
            x[i] += randint(-15, 15)
        sd.sleep(0.1)
        if sd.user_want_exit():
            break
        sd.sleep(0.1)
        if sd.user_want_exit():
            break
    next_angle_plus = angle + 30
    next_angle_minus = angle - 30
    next_length = length * .75
    draw_branches(start_point=next_point_1,
                  angle=next_angle_plus,
                  length=next_length)
    draw_branches(start_point=next_point_2,
                  angle=next_angle_minus,
                  length=next_length)


root_point = sd.get_point(300, 30)
draw_branches(start_point=root_point, angle=90, length=100)

sd.user_want_exit(1)
sd.clear_screen()

# 4) Усложненное задание (делать по желанию)
# - сделать рандомное отклонение угла ветвей в пределах 40% от 30-ти градусов
# - сделать рандомное отклонение длины ветвей в пределах 20% от коэффициента 0.75
# Возможный результат решения см lesson_004/results/exercise_04_fractal_02.jpg

# Пригодятся функции
# sd.random_number()


def draw_branches(start_point,
                  angle,
                  length,
                  is_random=True,
                  is_summer_tree=True):
 def clear_previus_picture(self):
     sd.clear_screen()
Beispiel #11
0
def print_fallen_snowflakes(qnty_snowflakes, y_list):
    for i in qnty_snowflakes:
        if y_list[i] == 10:
            print('снежинка номер {} упала'.format(i))
            qnty_snowflakes.remove(i)
            sd.clear_screen()
Beispiel #12
0
 def clear(self):
     sd.clear_screen()
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# нарисовать снегопад - 7 движужихся снежинок радиусом от 10 до 60 
# снежинки падают с высоты 500 пикселов со скоростью 30 пикселов за такт
# на расстоянии 100 пикселов друг от друга
from simple_draw import clear_screen, Point, snowflake, sleep, end

y = 500
for i in range(10):
    clear_screen()
    y = ...  # как изменяется y для всех снежинок
    for i in range(7):
        point = Point(...)
        snowflake(point)
    sleep(0.3)

# + нарисовать снежинки разных радиусов, для этого хранить список радиусов
radiuses = [30, 20, 40, 10, 50, 70, ]

# + сделать скорость падения уникальной для каждой снежинки,
# для этого хранить список координат Y и скоростей по Y
coordinates = [...]
velocity = [...]

# ++ сделать реальный снегопад, что бы снежинки порхали из стороны в сторону

end()