Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from drawbot_skia.drawbot import *
- import random
- # Задание 1 - круги по вертикали
- def draw_ovals():
- newDrawing()
- # Размер полотна
- size(500, 500)
- radius = 50
- step = 110
- # Начальная позиция по горизонтали - середина полотна
- x = width()/2 - radius
- # Начальный отступ по вертикали
- y = 35
- for i in range(4):
- gradient = radialGradient(
- (x + radius, y + radius), # startPoint
- (x + radius, y + radius), # endPoint (почему-то жаловался и игнорировал любые значения)
- [(255, 0, 255, 1), (0, 0, 255, 1)]) # цвета градиента
- # Рисуем круг
- oval(x, y, radius*2, radius*2)
- # Делаем отступ по вертикали
- y += step
- saveImage('ovals.pdf')
- # Задание 2 - квадраты по вертикали и горизонтали
- def draw_rectangles():
- newDrawing()
- size(500, 500)
- # Размер квадрата
- side = 100
- # Шаг
- step = 20
- for col in range(5):
- for row in range(5):
- x = step + col * (side + step)
- y = step + row * (side + step)
- shadow((5, 5), 15, (0, 0, 0.5))
- fill(0.7, 0.65, 1)
- rect(x, y, side, side)
- saveImage('rectangles.pdf')
- # Задание 3 - творческое
- def draw_winter():
- newDrawing()
- size(500, 500)
- # Заполнение фона
- fill(0.7, 0.65, 1)
- rect(0, 0, 500, 500)
- # Снег внизу
- fill(1, 1, 1)
- rect(0, 0, 500, 150)
- step = 50
- y = 300
- width = 10
- # Ель
- for i in range(3):
- fill(0.1, 0.7, 0.2)
- polygon((100 - width, y), (200 + width, y), (150, y + step), close=True)
- y -= step
- width += width
- # Ствол дерева
- fill(0.5, 0.4, 0.2)
- rect(145, 150, 10, 50)
- # Снежинки
- for i in range(70):
- x = random.randint(0, 500)
- y = random.randint(0, 500)
- radius = random.randint(2, 15)
- fill(1,1,1)
- oval(x, y, radius, radius)
- # Солнце
- shadow((0, 0), 30, (1, 1, 0))
- fill(1, 0.9, 0.3)
- oval(350, 350, 100, 100)
- saveImage('winter.pdf')
- draw_ovals()
- draw_rectangles()
- draw_winter()
Advertisement
Add Comment
Please, Sign In to add comment