Создание игры. Знакомство с графикой

Теперь нарисуйте три окружности. Все три центра должны быть разными точками, а окружности вложены друг в друга и не пересекаться. То есть вторая окружность должна быть строго внутри первой, а третья — внутри второй.

Содержимое разработки

Создание игры. Знакомство с графикой Практика

Создание игры. Знакомство с графикой

Практика

Задача 1  «Три линии» Нарисуйте три линии так, чтобы получился треугольник (любой). Результат: from drawzero import * line('red', (300, 200), (700, 300)) line('red', (300, 200), (500, 400)) line('red', (500, 400), (700, 300))

Задача 1 «Три линии»

Нарисуйте три линии так, чтобы получился треугольник (любой).

Результат:

from drawzero import *

line('red', (300, 200), (700, 300))

line('red', (300, 200), (500, 400))

line('red', (500, 400), (700, 300))

Задача 2 «Три окружности» Теперь нарисуйте три окружности. Все три центра должны быть разными точками, а окружности вложены друг в друга и не пересекаться. То есть вторая окружность должна быть строго внутри первой, а третья — внутри второй. Результат: from drawzero import * circle('yellow', (500, 300), 200) circle('yellow', (525, 300), 150) circle('yellow', (550, 245), 75)

Задача 2 «Три окружности»

Теперь нарисуйте три окружности. Все три центра должны быть разными точками, а окружности вложены друг в друга и не пересекаться. То есть вторая окружность должна быть строго внутри первой, а третья — внутри второй.

Результат:

from drawzero import *

circle('yellow', (500, 300), 200)

circle('yellow', (525, 300), 150)

circle('yellow', (550, 245), 75)

Задача 3 «Два пластыря»

from drawzero import *

# это порезы, их не нужно трогать

filled _ polygon('red', (260, 340), (310, 310), (320, 390))

filled _ polygon('red', (510, 295), (620, 305), (590, 405))

filled _ polygon('red', (720, 600), (655, 700), (722, 730))

filled _ polygon('red', (550, 550), (510, 350), (570, 430))

filled _ polygon('red', (510, 70), (517, 134), (580, 200))

filled _ polygon('red', (630, 340), (730, 360), (630, 390))

filled _ polygon('red', (690, 820), (710, 760), (680, 780))

filled _ polygon('red', (750, 690), (830, 710), (730, 720))

filled _ polygon('red', (520, 620), (590, 610), (550, 640))

# left, top — координаты левого верхнего угла прямоугольника

# w, h — большая и меньшая стороны прямоугольника r — радиус окружности

# параметры ниже нужно подобрать

left = 220

top = 650

w = 500

h = w // 5

r = h // 2

filled _ rect('yellow', (left, top), w, h)

filled _ circle('yellow', (left, top + r), r)

filled _ circle('yellow', (left + w, top + r), r)

filled _ rect('yellow', (left + w // 2 - r, top - w // 2 + r), h, w)

filled _ circle('yellow', (left + w // 2, top - w // 2 + r), r)

filled _ circle('yellow', (left + w // 2, top + w // 2 + r), r)

В аптечке есть два пластыря в форме креста со скруглёнными краями. В коде ниже есть пример одного из них, размер второго (ширина) равен 300. Подберите место, куда надо «наклеить» эти два пластыря, чтобы закрыть все порезы, которые отмечены красными треугольниками.

Используйте для перемещения переменные, объявленные в коде. Пропорции должны быть сохранены (меньшая сторона в 5 раз меньше большей).

Задача 3 «Два пластыря» from drawzero import * # это порезы, их не нужно трогать filled _ polygon('red', (260, 340), (310, 310), (320, 390)) filled _ polygon('red', (510, 295), (620, 305), (590, 405)) filled _ polygon('red', (720, 600), (655, 700), (722, 730)) filled _ polygon('red', (550, 550), (510, 350), (570, 430)) filled _ polygon('red', (510, 70), (517, 134), (580, 200)) filled _ polygon('red', (630, 340), (730, 360), (630, 390)) filled _ polygon('red', (690, 820), (710, 760), (680, 780)) filled _ polygon('red', (750, 690), (830, 710), (730, 720)) filled _ polygon('red', (520, 620), (590, 610), (550, 640)) # left, top — координаты левого верхнего угла прямоугольника # w, h — большая и меньшая стороны прямоугольника r — радиус окружности # параметры ниже нужно подобрать left = 300 top = 300 w = 500 h = w // 5 r = h // 2 filled _ rect('yellow', (left, top), w, h) filled _ circle('yellow', (left, top + r), r) filled _ circle('yellow', (left + w, top + r), r) filled _ rect('yellow', (left + w // 2 - r, top - w // 2 + r), h, w) filled _ circle('yellow', (left + w // 2, top - w // 2 + r), r) filled _ circle('yellow', (left + w // 2, top + w // 2 + r), r) left = 550 top = 675 w = 300 h = w // 5 r = h // 2 filled _ rect('yellow', (left, top), w, h) filled _ circle('yellow', (left, top + r), r) filled _ circle('yellow', (left + w, top + r), r) filled _ rect('yellow', (left + w // 2 - r, top - w // 2 + r), h, w) filled _ circle('yellow', (left + w // 2, top - w // 2 + r), r) filled _ circle('yellow', (left + w // 2, top + w // 2 + r), r)

Задача 3 «Два пластыря»

from drawzero import *

# это порезы, их не нужно трогать

filled _ polygon('red', (260, 340), (310, 310), (320, 390))

filled _ polygon('red', (510, 295), (620, 305), (590, 405))

filled _ polygon('red', (720, 600), (655, 700), (722, 730))

filled _ polygon('red', (550, 550), (510, 350), (570, 430))

filled _ polygon('red', (510, 70), (517, 134), (580, 200))

filled _ polygon('red', (630, 340), (730, 360), (630, 390))

filled _ polygon('red', (690, 820), (710, 760), (680, 780))

filled _ polygon('red', (750, 690), (830, 710), (730, 720))

filled _ polygon('red', (520, 620), (590, 610), (550, 640))

# left, top — координаты левого верхнего угла прямоугольника

# w, h — большая и меньшая стороны прямоугольника r — радиус окружности

# параметры ниже нужно подобрать

left = 300

top = 300

w = 500

h = w // 5

r = h // 2

filled _ rect('yellow', (left, top), w, h)

filled _ circle('yellow', (left, top + r), r)

filled _ circle('yellow', (left + w, top + r), r)

filled _ rect('yellow', (left + w // 2 - r, top - w // 2 + r), h, w)

filled _ circle('yellow', (left + w // 2, top - w // 2 + r), r)

filled _ circle('yellow', (left + w // 2, top + w // 2 + r), r)

left = 550

top = 675

w = 300

h = w // 5

r = h // 2

filled _ rect('yellow', (left, top), w, h)

filled _ circle('yellow', (left, top + r), r)

filled _ circle('yellow', (left + w, top + r), r)

filled _ rect('yellow', (left + w // 2 - r, top - w // 2 + r), h, w)

filled _ circle('yellow', (left + w // 2, top - w // 2 + r), r)

filled _ circle('yellow', (left + w // 2, top + w // 2 + r), r)

Задача 4 «Попробуй изобрази» from drawzero import * filled _ polygon('yellow',(1000,1000),(0, 1000),(1000, 0)) text('black', 'hellO worlD!', (760, 600), 100) line('green', (0, 1000),(1000,0),2) filled _ polygon('purple', (100,700), (500,700), (100,900),(500,900)) filled _ circle(

Задача 4 «Попробуй изобрази»

from drawzero import *

filled _ polygon('yellow',(1000,1000),(0, 1000),(1000, 0))

text('black', 'hellO worlD!', (760, 600), 100)

line('green', (0, 1000),(1000,0),2)

filled _ polygon('purple', (100,700), (500,700), (100,900),(500,900))

filled _ circle("white", (300,400), 115)

filled _ circle("brown", (300,400), 110)

filled _ circle("green", (300,400), 105)

filled _ circle("red", (300,400), 100)

filled _ circle("black", (300,400), 70)

filled _ rect('white', (100,260),(50, 260),(75,310))

Задача 5 Нарисуйте пятиконечную звезду (угол поворота 144 градуса). Квадрат и звезду в одной программе, на одном графическом поле, но с разными экземплярами класса Turtle. Результат: import turtle square = turtle.Turtle() square.shape(

Задача 5

Нарисуйте пятиконечную звезду (угол поворота 144 градуса).

Квадрат и звезду в одной программе, на одном графическом поле, но с разными экземплярами класса Turtle.

Результат:

import turtle

square = turtle.Turtle()

square.shape("turtle")

for i in range(4):

square.forward(100)

square.right(90)

starf = turtle.Turtle()

starf.shape("turtle")

for i in range(5):

starf.forward(100)

starf.right(144)

turtle.exitonclick()

Задача 6 Нарисуйте девятиконечную звезду. Результат: import turtle nineang = turtle.Turtle() for i in range(9):  nineang.forward(100)  nineang.left(140)  nineang.forward(100)  nineang.right(100) turtle.exitonclick()

Задача 6

Нарисуйте девятиконечную звезду.

Результат:

import turtle

nineang = turtle.Turtle()

for i in range(9):

nineang.forward(100)

nineang.left(140)

nineang.forward(100)

nineang.right(100)

turtle.exitonclick()

Результат: import turtle turtle.hideturtle() turtle.speed(10) turtle.color('red') turtle.begin _ fill() for i in range(4):  turtle.forward(100)  turtle.right(90) turtle.end _ fill() turtle.penup() turtle.goto(200, 200) turtle.pendown() turtle.color('green') turtle.begin _ fill() for i in range(5):  turtle.forward(100)  turtle.rt(144) turtle.end _ fill() Задача 7 turtle.penup() turtle.goto(-200, -200) turtle.pendown() turtle.color('blue') turtle.begin _ fill() for i in range(8):  turtle.forward(100)  turtle.right(135) turtle.end _ fill() turtle.penup() turtle.goto(200, -200) turtle.pendown() turtle.color('cyan') turtle.begin _ fill() for i in range(3):  turtle.forward(100)  turtle.lt(120) turtle.end _ fill() turtle.penup() turtle.goto(-200, 200) turtle.pendown() Нарисовать галерею из 5 или более многоугольников на одном поле. Использовать экземпляр класса turtle.Turtle(). Нарисованные многоугольники закрасить разными цветами. Пробуйте стандартные цвета или их шестнадцатеричное представление. Не забудьте кавычки вокруг названия или кода цвета! turtle.color('magenta') turtle.begin _ fill() for i in range(9):  turtle.forward(30)  turtle.right(140)  turtle.forward(30)  turtle.left(100) turtle.end _ fill() turtle.exitonclick()

Результат:

import turtle

turtle.hideturtle()

turtle.speed(10)

turtle.color('red')

turtle.begin _ fill()

for i in range(4):

turtle.forward(100)

turtle.right(90)

turtle.end _ fill()

turtle.penup()

turtle.goto(200, 200)

turtle.pendown()

turtle.color('green')

turtle.begin _ fill()

for i in range(5):

turtle.forward(100)

turtle.rt(144)

turtle.end _ fill()

Задача 7

turtle.penup()

turtle.goto(-200, -200)

turtle.pendown()

turtle.color('blue')

turtle.begin _ fill()

for i in range(8):

turtle.forward(100)

turtle.right(135)

turtle.end _ fill()

turtle.penup()

turtle.goto(200, -200)

turtle.pendown()

turtle.color('cyan')

turtle.begin _ fill()

for i in range(3):

turtle.forward(100)

turtle.lt(120)

turtle.end _ fill()

turtle.penup()

turtle.goto(-200, 200)

turtle.pendown()

Нарисовать галерею из 5 или более многоугольников на одном поле. Использовать экземпляр класса turtle.Turtle().

Нарисованные многоугольники закрасить разными цветами. Пробуйте стандартные цвета или их шестнадцатеричное представление. Не забудьте кавычки вокруг названия или кода цвета!

turtle.color('magenta')

turtle.begin _ fill()

for i in range(9):

turtle.forward(30)

turtle.right(140)

turtle.forward(30)

turtle.left(100)

turtle.end _ fill()

turtle.exitonclick()

Задача 8 «Анимация» Результат: from drawzero import * from math import sin, cos, pi earth _ orbit = 400 earth _ radius = 30 earth _ rot _ step = 2 * pi / 360 moon _ orbit = 100 moon _ radius = 10 moon _ rot _ step = 2 * pi / 60 i = 0 while True:  i += 1  e _ x = 500 + earth _ orbit * cos(earth _ rot _ step * i)  e _ y = 500 + earth _ orbit * sin(earth _ rot _ step * i)  m _ x = e _ x + moon _ orbit * cos(moon _ rot _ step * i)  m _ y = e _ y + moon _ orbit * sin(moon _ rot _ step * i)  clear()  filled _ circle(C.red, (500, 500), 100)  filled _ circle(C.blue, (e _ x, e _ y), earth _ radius)  filled _ circle(C.yellow, (m _ x, m _ y), moon _ radius)  tick() Создать «анимацию» с помощью библиотеки drawzero.

Задача 8 «Анимация»

Результат:

from drawzero import *

from math import sin, cos, pi

earth _ orbit = 400

earth _ radius = 30

earth _ rot _ step = 2 * pi / 360

moon _ orbit = 100

moon _ radius = 10

moon _ rot _ step = 2 * pi / 60

i = 0

while True:

i += 1

e _ x = 500 + earth _ orbit * cos(earth _ rot _ step * i)

e _ y = 500 + earth _ orbit * sin(earth _ rot _ step * i)

m _ x = e _ x + moon _ orbit * cos(moon _ rot _ step * i)

m _ y = e _ y + moon _ orbit * sin(moon _ rot _ step * i)

clear()

filled _ circle(C.red, (500, 500), 100)

filled _ circle(C.blue, (e _ x, e _ y), earth _ radius)

filled _ circle(C.yellow, (m _ x, m _ y), moon _ radius)

tick()

Создать «анимацию» с помощью библиотеки drawzero.

Круг и точка Не хватает плавных изгибов? На помощь приходят функции dot() и circle(): Дополнительно мы: изменили заголовок окна функцией title(), установили толщину линии – pensize(), установили цвет линии – pencolor(), Подняли черепашку перед перемещением – penup() и опустили после – pendown(). import turtle turtle.title(

Круг и точка

Не хватает плавных изгибов? На помощь приходят функции dot() и circle():

Дополнительно мы:

  • изменили заголовок окна функцией title(),
  • установили толщину линии – pensize(),
  • установили цвет линии – pencolor(),
  • Подняли черепашку перед перемещением – penup() и опустили после – pendown().

import turtle

turtle.title("Turtle Drawing")

circle = turtle.Turtle()

circle.shape("turtle")

circle.pensize(5)

circle.pencolor("cyan")

circle.penup()

circle.goto(0, -100)

circle.pendown()

circle.circle(100)

turtle.exitonclick()

2: angle = 360 / n for n in range(0, n): turtlePen.left(angle) turtlePen.forward(size) # рисуем разные фигуры polygon(3) polygon(4) polygon(5) polygon(6) import turtle turtlePen = turtle.Turtle() window = turtle.Screen() def polygon(n, size=80): if n 2: angle = 360/n for n in range(0, n): turtlePen.left(angle) turtlePen.forward(size) turtlePen.speed(10) for i in range(0, 100, 5): polygon(3, 10 + i) turtlePen.left(20) window.mainloop() import turtle turtlePen = turtle.Turtle() window = turtle.Screen() turtlePen.left(90) turtlePen.forward(80) turtlePen.left(90) turtlePen.forward(80) turtlePen.left(90) turtlePen.forward(80) turtlePen.left(90) turtlePen.forward(80) window.mainloop() import turtle turtlePen = turtle.Turtle() window = turtle.Screen() turtlePen.left(120) turtlePen.forward(80) turtlePen.left(120) turtlePen.forward(80) turtlePen.left(120) turtlePen.forward(80) window.mainloop()" width="640"

Любые фигуры

import turtle

turtlePen = turtle.Turtle()

window = turtle.Screen()

turtlePen.forward(30)

turtlePen.left(90)

turtlePen.forward(30)

turtlePen.right(90)

turtlePen.forward(30)

turtlePen.left(90)

turtlePen.forward(30)

turtlePen.right(90)

turtlePen.forward(30)

turtlePen.left(90)

turtlePen.forward(30)

turtlePen.right(90)

turtlePen.forward(30)

window.mainloop()

import turtle

turtlePen = turtle.Turtle()

window = turtle.Screen()

def polygon(n, size=80):

if n 2:

angle = 360 / n

for n in range(0, n):

turtlePen.left(angle)

turtlePen.forward(size)

# рисуем разные фигуры

polygon(3)

polygon(4)

polygon(5)

polygon(6)

import turtle

turtlePen = turtle.Turtle()

window = turtle.Screen()

def polygon(n, size=80):

if n 2:

angle = 360/n

for n in range(0, n):

turtlePen.left(angle)

turtlePen.forward(size)

turtlePen.speed(10)

for i in range(0, 100, 5):

polygon(3, 10 + i)

turtlePen.left(20)

window.mainloop()

import turtle

turtlePen = turtle.Turtle()

window = turtle.Screen()

turtlePen.left(90)

turtlePen.forward(80)

turtlePen.left(90)

turtlePen.forward(80)

turtlePen.left(90)

turtlePen.forward(80)

turtlePen.left(90)

turtlePen.forward(80)

window.mainloop()

import turtle

turtlePen = turtle.Turtle()

window = turtle.Screen()

turtlePen.left(120)

turtlePen.forward(80)

turtlePen.left(120)

turtlePen.forward(80)

turtlePen.left(120)

turtlePen.forward(80)

window.mainloop()

import turtle turtlePen = turtle.Turtle() window = turtle.Screen() window.bgcolor( 2: angle = 360 / n for n in range(0, n): turtlePen.left(angle) turtlePen.forward(size) turtlePen.speed(100) colors = ['orange', 'cyan', 'blue', 'green', 'red'] size = 40 for i in range(0, 60): turtlePen.color(colors[i % 5]) polygon(4, size) turtlePen.left(5) size = size + 3 window.mainloop() Используем цвета Фон окна можно изменить командой bgcolor , куда передаем имя текста в виде строки: Аналогично при помощи команды color указываем цвет для рисования: Цвет можно менять и во время рисования. Для этого создадим массив цветов и в зависимости от значения цикла (или иных параметров) будем менять цвет линий. window.bgcolor("red") window.bgcolor("red")" width="640"

import turtle

turtlePen = turtle.Turtle()

window = turtle.Screen()

window.bgcolor("black")

def polygon(n, size=80):

if n 2:

angle = 360 / n

for n in range(0, n):

turtlePen.left(angle)

turtlePen.forward(size)

turtlePen.speed(100)

colors = ['orange', 'cyan', 'blue', 'green', 'red']

size = 40

for i in range(0, 60):

turtlePen.color(colors[i % 5])

polygon(4, size)

turtlePen.left(5)

size = size + 3

window.mainloop()

Используем цвета

Фон окна можно изменить командой bgcolor , куда передаем имя текста в виде строки:

Аналогично при помощи команды color указываем цвет для рисования:

Цвет можно менять и во время рисования. Для этого создадим массив цветов и в зависимости от значения цикла (или иных параметров) будем менять цвет линий.

window.bgcolor("red")

window.bgcolor("red")

Сохранить у себя:
Создание игры. Знакомство с графикой

Получите свидетельство о публикации сразу после загрузки работы



Получите бесплатно свидетельство о публикации сразу после добавления разработки