Информатика 1.2 ИШИТР(Попов) / Отчет №11(Анимация)
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Институт кибернетики
Кафедра информатики и проектирования систем
Направление «Информационные системы и технологии»
Отчет по лабораторной работе №11 по дисциплине
«ИНФОРМАТИКА»
Анимация
Выполнил:
Студент группы 8И61 _________________
Е.В. Якоби
Проверил:
Доцент кафедры ИПС _________________
Ф.В. Саврасов
Томск 2016
Задание
12. Разработайте программу анимации взлета ракеты. Старт
осуществляется по нажатию специальной «красной» кнопки.
Текст программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Объявление переменных, кистей и массивов
int x, y, y1;
int i = 0, j = 0;
SolidBrush B = new SolidBrush(Color.Blue);
SolidBrush R = new SolidBrush(Color.DarkRed);
SolidBrush U = new SolidBrush(Color.OrangeRed);
Point[] T = new Point[4];
Point[] L = new Point[7];
//Присвоим значения переменным при загрузке формы
private void Form1_Load(object sender, EventArgs e)
{
y = 220;
x = 160;
y1 = 256;
}
//Обозначим нажатие кнопки
private void button1_Click(object sender, EventArgs e)
{
i = 1;
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
//Если нажата кнопка, появляется пламя
if(i==1)
{
L[0] = new Point(x + 15, y1);
L[1] = new Point(x + 10, y1+20);
L[2] = new Point(x + 15, y1+15);
L[3] = new Point(x + 20, y1+30);
L[4] = new Point(x + 25, y1+15);
L[5] = new Point(x + 30, y1+20);
L[6] = new Point(x + 25, y1);
g.FillPolygon(U, L);
}
//Отрисовка ракеты
T[0] = new Point(x + 20, y);
T[1] = new Point(x, y + 50);
T[2] = new Point(x + 20, y + 40);
T[3] = new Point(x + 40, y + 50);
g.FillPolygon(R, T);
g.FillEllipse(B, x + 16, y + 15, 8, 8);
g.FillEllipse(B, x + 16, y + 25, 8, 8);
}
private void timer1_Tick(object sender, EventArgs e)
{
//Если нажата кнопка, ракета взлетает
if (i == 1)
{
if (j % 2 != 0)
{
y1 += 3;
}
else
y1 -= 3;
j++;
y1 -=3;
y -= 3;
Invalidate();
}
}
}
}
Результаты работы
Начальный вид программы:
При нажатии кнопки ракета начинает двигаться вверх.
Выводы
Изучила возможности Visual Studio по созданию простейшей анимации. Написала и отладила программу, выводящую на экран анимационное изображение.