Тема: Компьютерная анимация сцены "Дом и его окружение. Движение автомобиля" средствами библиотеки tkinter на языке Python

  • Вид работы: Контрольная работа
  • Предмет: Информационное обеспечение, программирование

Министерство образования Российской Федерации

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ

Кафедра телевидения и управления (ТУ)











Контрольная работа

по дисциплине Технология программирования

Компьютерная анимация сцены «Дом и его окружение. Движение автомобиля» средствами библиотеки tkinter на языке Python




Студент

Кривошеевой Юлии Евгеньевны


Содержание


Введение

. Описание авторской идеи анимации

. Описание использования базовых команд и конструкций

. Описание процесса проектирования программы

. Описание алгоритма разработанной программы

Заключение

Список используемых источников

Приложения

Введение


Актуальность данной работы состоит в том, что при работе над курсовой, я научусь правильно её оформлять, пойму саму структуру курсовых работ. Таким образом, на примере данной курсовой я научусь составлять последующие мои курсовые и дипломные работы, с которыми я ещё буду не раз встречаться в течение 6 лет учебной деятельности в университете.

Цель курсовой работы - повысить уровень знания в области разработки программ средствами библиотеки tkinter на языке Python, изучить основы работы в текстовом редакторе Word.

Задачи:

  1. написать программу и описать её;
  2. научиться писать курсовую работу;
  3. научиться правильно оформлять курсовую работу;
  4. научиться работать в текстовом редакторе MS Word.

Краткое описание глав пояснительной записки:

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


1. Описание авторской идеи анимации

программа библиотека python анимация

В своем курсовом проекте я решила изобразить сцену «Дом и его окружение. Движение автомобиля», поэтому в своем рисунке я нарисовала ночной двор, его окружение, дорогу. По обе стороны дороги у меня изображены два дома, детская площадка, качели, песочница. Окружение домов составляет лес. На ночном небе у меня нарисованы звезды и луна. Также на рисунке присутствует анимация: вниз по дороге движется автомобиль. Была задумано, что автомобиль от середины дороги едет вниз и исчезает, что у меня и получилось

На создание именно такой картинки и анимации меня подтолкнула осенняя поездка домой, именно там я начала составлять свой рисунок (сначала на листочке), а данная анимация движения автомобиля символизирует мой обратный уезд на учебу.


. Описание используемых базовых команд и конструкций


  1. from tkinter import * - импорт модуля
  2. root = Tk - создание объекта типа Tk
  3. w = Canvas() - создание виджета «Холст»
  4. w.pack() - отображение виджета
  5. width =,height =, - размер холста в пикселях
  6. def go() - оператор определения функции go()
  7. w.move - движение вперед
  8. w.after() - пауза между перерисовками
  9. go - функция для оператора def go()
  10. create_rectangle - команда рисования прямоугольника
  11. create_polygon - команда рисования многоугольника
  12. fill - параметр цвета линии
  13. width - параметр толщины линии в пикселях
  14. outline - параметр цвета рамки прямоугольника
  15. create_line - команда рисования линии
  16. create_oval - команда рисования овалов и кругов
  17. mainloop() - запуск цикла событий tkinter

3. Описание процесса проектирования программы


Написание данного курсового проекта является для меня новинкой. В школе я никогда не занималась программированием. Но на парах по «Технологии программирования» я всё же освоила какие-то азы. Когда приступила к написанию программы по проекту, то возникли определенные трудности, либо не знала, как осуществлять анимацию, либо не знала, что писать в тех или иных пунктах пояснительной записки. По мере возможностей все проблемы были устранены. Процесс проектирования моей программы заключался в следующем:

.Разработка идеи проекта (сначала нарисовала рисунок на листе бумаги)

.Разработка идеи анимации (движение автомобиля вниз и в сторону)

.Изменение идеи анимации (появились трудности с осуществлением анимации)

.Задумка новой идеи анимации (движение автомобиля по дороге только вниз)

.Реализация новой идеи анимации

.Написание пояснительной записки

.Появление проблемы в понимании написании некоторых пунктов курсового проекта (различие таких пунктов курсовой, как «Описание алгоритма разработанной программы» от «Описания процесса проектирования программы»)

.Решение данной проблемы на консультациях по курсовому проекту.

.Сдача пояснительной записки по курсовому проекту.


. Описание алгоритма разработанной программы


Последовательность создания анимации:

  1. Придумала картинку
  2. Нарисовала её на листке
  3. Задала размеры холста
  4. Рисую прямоугольник (траву)
  5. Рисую левый домик
  6. Рисую крышу на левый домик
  7. Рисую трубу на левый домик
  8. Рисую фундамент на правый и левый домик
  9. Рисую два окна на левый домик
  10. Рисую три ёлочки
  11. Рисую небо
  12. Рисую дорогу
  13. Рисую правый домик
  14. Рисую крышу для правого домика
  15. Рисую трубу для правого домика
  16. Рисую дверь для правого домика
  17. Рисую окно на правый домик
  18. Рисую три ёлочки
  19. Рисую площадку (песок)
  20. Рисую качели
  21. Рисую машину
  22. Рисую корпус машины
  23. Рисую колеса на машину
  24. Рисую Луну
  25. Рисую звезды
  26. Прописываю координаты движения для анимации движения машины
  27. В конце пишу команды запуска движения анимации и самой программы

Заключение


В данном курсовом проекте была написана программа, которая выводит на экран рисунок, составленный в программе Python, и анимация. Были изучены основы программирования на языке Python средствами библиотеки tkinter. Изучены основы работы в текстовом редакторе Word. Было проведено оформление пояснительной записки по системе образовательных стандартов ВУЗов. Для себя я отметила, что работа была довольно интересной. Все поставленные мною цели и задачи были достигнуты.


Список используемых источников


1.#"justify">Приложение А


Листинг программы

tkinter import *

root = Tk()= Canvas(root,, height=600).pack()go():,y=0,3.move(a1,x,y).move(a2,x,y).move(a3,x,y).move(a4,x,y)

w.after(30,go)


# Рисую прямоугольник(траву)

w.create_rectangle(0, 100, 800, 600, fill = 'light green')

# Рисую левый домик.create_rectangle(60, 340, 200, 440, fill = 'brown', outline = 'black', width = '2')

# Рисую крышу на левый домик.create_polygon(60, 340, 120, 280, 200, 340, 60, 340, fill = 'brown', outline = 'black', width = '2')

#Рисую трубу на левый домик.create_polygon(60, 280, 80, 280, 80, 320, 60, 340, 60, 280, fill = 'brown', outline = 'black', width = '2')

# Рисуем фундамент.create_rectangle(40, 440, 220, 460, fill = 'red', outline = 'black', width = '2').create_line(60, 440, 60, 460, fill = 'black', width = '2').create_line(80, 440, 80, 460, fill = 'black', width = '2').create_line(100, 440, 100, 460, fill = 'black', width = '2').create_line(120, 440, 120, 460, fill = 'black', width = '2').create_line(140, 440, 140, 460, fill = 'black', width = '2').create_line(160, 440, 160, 460, fill = 'black', width = '2').create_line(180, 440, 180, 460, fill = 'black', width = '2').create_line(200, 440, 200, 460, fill = 'black', width = '2')


# Рисую два окна.create_rectangle(80, 360, 120, 400, fill = 'yellow', outline = 'black', width = '2').create_rectangle(140, 360, 180, 400, fill = 'yellow', outline = 'black', width = '2').create_line(100, 360, 100, 400, fill = 'black', width = '2').create_line(80, 380, 120, 380, fill = 'black', width = '2').create_line(140, 380, 180, 380, fill = 'black', width = '2').create_line(160, 360, 160, 400, fill = 'black', width = '2')


# Рисую три ёлочки.create_polygon(40, 220, 80, 200, 120, 220, 40, 220, fill = 'green', outline = 'black', width = '3').create_polygon(60, 200, 80, 180, 100, 200, 60, 200, fill = 'green', outline = 'black', width = '3').create_line(80, 220, 80, 240, fill = 'black', width = '2').create_polygon(160, 240, 200, 220, 240, 240, 160, 240, fill = 'green', outline = 'black', width = '3').create_polygon(180, 220, 200, 200, 220, 220, 180, 220, fill = 'green', outline = 'black', width = '3').create_line(200, 240, 200, 260, fill = 'black', width = '2').create_polygon(120, 160, 160, 140, 200, 160, 120, 160, fill = 'green', outline = 'black', width = '3').create_polygon(140, 140, 160, 120, 180, 140, 140, 140, fill = 'green', outline = 'black', width = '3').create_line(160, 160, 160, 180, fill = 'black', width = '2')


# Рисую небо.create_rectangle(0, 0, 800, 100, fill = 'black', outline = 'black', width = '2')


# Рисую дорогу.create_line(260, 100, 260, 600, fill = 'black', width = '3').create_line(400, 100, 400, 600, fill = 'black', width = '3').create_rectangle(260, 100, 400, 600, fill = 'gray')


# Рисую правый домик.create_rectangle(480, 300, 580, 420, fill = 'brown', outline = 'black', width = '2')


# Рисую фундамент.create_rectangle(460, 420, 600, 440, fill = 'red', outline = 'black', width = '2').create_line(480, 420, 480, 440, fill = 'black', width = '2').create_line(500, 420, 500, 440, fill = 'black', width = '2').create_line(520, 420, 520, 440, fill = 'black', width = '2').create_line(540, 420, 540, 440, fill = 'black', width = '2').create_line(560, 420, 560, 440, fill = 'black', width = '2').create_line(580, 420, 580, 440, fill = 'black', width = '2').create_polygon(480, 300, 520, 260, 580, 300, 480, 300, fill = 'brown', outline = 'black', width = '2')


# Рисую трубу для правого домика.create_polygon(560, 287, 560, 240, 580, 240, 580, 300, fill = 'brown', outline = 'black', width = '2')


# Рисую дверь для правого домика.create_rectangle(500, 380, 520, 420, fill = 'brown', outline = 'black', width = '2')


# Рисую окно.create_rectangle(500, 320, 560, 360, fill = 'yellow', outline = 'black', width = '2').create_line(520, 320, 520, 340, fill = 'black', width = '2').create_line(500, 340, 560, 340, fill = 'black', width = '2')


# Рисую три ёлочки.create_polygon(420, 200, 460, 180, 500, 200, 420, 200, fill = 'green', outline = 'black', width = '3').create_polygon(440, 180, 460, 160, 480, 180,440, 180, fill = 'green', outline = 'black', width = '3').create_line(460, 200, 460, 220, fill = 'black', width = '2').create_polygon(520, 160, 560, 140, 600, 160, 520, 160, fill = 'green', outline = 'black', width = '3').create_polygon(540, 140, 560, 120, 580, 140, 540, 140, fill = 'green', outline = 'black', width = '3').create_line(560, 160, 560, 180, fill = 'black', width = '2').create_polygon(640, 200, 680, 180, 720, 200, 640, 200, fill = 'green', outline = 'black', width = '3').create_polygon(660, 180, 680, 160, 700, 180, 660, 180, fill = 'green', outline = 'black', width = '3').create_line(680, 200, 680, 220, fill = 'black', width = '2')

# Рисую площадку(песок).create_rectangle(520, 480, 720, 580, fill = 'light yellow', outline = 'black', width = '2')


# Рисую качели.create_line(580, 460, 580, 560, fill = 'red', width = '2').create_line(580, 460, 680, 460, fill = 'red', width = '2').create_line(680, 460, 680, 560, fill = 'red', width = '2').create_line(600, 460, 600, 540, fill = 'red', width = '2').create_line(660, 460, 660, 540, fill = 'red', width = '2').create_line(587, 540, 669, 540, fill = 'red', width = '5')


# Рисую машину=w.create_rectangle(300, 380, 380, 450, fill = 'blue', outline = 'black', width = '4', tag = 'line1')=w.create_rectangle(320, 400, 360, 420, fill = 'white', outline = 'black', width = '3', tag = 'line2')=w.create_rectangle(290, 420, 310, 460, fill = 'black', outline = 'white', width = '3', tag = 'line3')=w.create_rectangle(370, 420, 390, 460, fill = 'black', outline = 'white', width = '3', tag = 'line4')


# Рисую Луну.create_oval(560, 10, 640, 80, fill = 'yellow', outline = 'black', width = '3')


# Рисую звезды.create_oval(480, 60, 500, 80, fill = 'yellow', outline = 'black', width = '3').create_oval(500, 20, 520, 40, fill = 'yellow', outline = 'black', width = '3').create_oval(660, 20, 680, 40, fill = 'yellow', outline = 'black', width = '3').create_oval(680, 60, 700, 80, fill = 'yellow', outline = 'black', width = '3').create_oval(200, 20, 220, 40, fill = 'yellow', outline = 'black', width = '3').create_oval(120, 60, 140, 80, fill = 'yellow', outline = 'black', width = '3').create_oval(40, 20, 60, 40, fill = 'yellow', outline = 'black', width = '3').create_oval(750, 10, 770, 30, fill = 'yellow', outline = 'black', width = '3').create_oval(280, 50, 300, 70, fill = 'yellow', outline = 'black', width = '3').create_oval(340, 15, 360, 35, fill = 'yellow', outline = 'black', width = '3').create_oval(380, 75, 400, 95, fill = 'yellow', outline = 'black', width = '3')

go()()


Приложение Б


Скриншот рисунка по программе


Рисунок Б1 - Ночной дворик 1


Рисунок Б2 - Ночной дворик 2