Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика 1.2 ИШИТР(Попов) / Отчет ЛБ№11(Анимация) Вар2

..docx
Скачиваний:
10
Добавлен:
18.04.2022
Размер:
69.03 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное

учреждение высшего образования

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Инженерная школа информационных технологий и робототехники

Отделение информационных технологий

Направление информатика и вычислительная техника

Отчет

по лабораторной работе №9

по дисциплине

«Информатика 1.2»

«Анимация»

Выполнил:

Студент группы _________________

Проверил:

Доцент ОИТ ИШИТР _________________ Х.С. Наламвар

Томск 2021

Цель работы

Задание

Изучить возможности Visual Studio по создание простейшей анимации. Написать и отладить программу, выводящую на экран анимационное изображение.

Текст программы

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 WindowsFormsApp_11_

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private int x1, y1, x2, y2, x3, y3, x4, y4, r2, r3, r4;

private double a2, a3, a4;

private Pen pen2 = new Pen(Color.Black, 2);

private Pen pen3 = new Pen(Color.Black, 3);

private Pen pen4 = new Pen(Color.Black, 4);

// Перерисовка формы

private void Form1_Paint_1(object sender, PaintEventArgs e)

{

Graphics g = e.Graphics;

g.DrawLine(pen2, x1, y1, x2, y2);// Рисуем секундную стрелку

g.DrawLine(pen3, x1, y1, x3, y3);// Рисуем минутную стрелку

g.DrawLine(pen4, x1, y1, x4, y4);// Рисуем часовую стрелку

//Рисуем циферблат

g.DrawEllipse(pen4, x1 - 180, y1 - 180, 360, 360);

g.DrawLine(pen4, x1, y1 - 180, x1, y1 - 160);

g.DrawLine(pen4, x1 + 180, y1, x1 + 160, y1);

g.DrawLine(pen4, x1, y1 + 180, x1, y1 + 160);

g.DrawLine(pen4, x1 - 180, y1, x1 - 160, y1);

}

private void Form1_Load(object sender, EventArgs e)

{

r2 = 150; // Радиус секундной стрелки

r3 = 150; // Радиус минутной стрелки

r4 = 120; // Радиус часовой стрелки

a2 = 0; // Угол поворота секундной стрелки

a3 = 0; // Угол поворота минутной стрелки

a4 = 0; // Угол поворота часовой стрелки

// Определяем центр формы – начало стрелок

x1 = ClientSize.Width / 2;

y1 = ClientSize.Height / 2;

// Конец секундной стрелки

x2 = x1 + (int)(r2 * Math.Sin(a2));

y2 = y1 - (int)(r2 * Math.Cos(a2));

// Конец минутной стрелки

x3 = x1 + (int)(r3 * Math.Sin(a3));

y3 = y1 - (int)(r3 * Math.Cos(a3));

// Конец часовой стрелки

x4 = x1 + (int)(r4 * Math.Sin(a4));

y4 = y1 - (int)(r4 * Math.Cos(a4));

}

private void timer1_Tick(object sender, EventArgs e)

{

a2 += 0.10472; // Увеличиваем угол секундной стрелки на 6 градусов

a3 += 0.00174533; // Увеличиваем угол минутной стрелки на 0.1 градус

a4 += 0.0001454441043; // Увеличиваем угол часовой стрелки на 0.008333 градусов

// Новые координаты концов стрелок

x2 = x1 + (int)(r2 * Math.Sin(a2));

y2 = y1 - (int)(r2 * Math.Cos(a2));

x3 = x1 + (int)(r3 * Math.Sin(a3));

y3 = y1 - (int)(r3 * Math.Cos(a3));

x4 = x1 + (int)(r4 * Math.Sin(a4));

y4 = y1 - (int)(r4 * Math.Cos(a4));

// Принудительный вызов события Paint

Invalidate();

}

}

Результаты работы

Выводы

Я изучил возможности создания простейшей анимации.