Лабораторная работа №1
Задание:
1. Создать проект из одной формы, на которую нанести один элемент PictureBox, две кнопки и таймер.
2. Снабдить кнопки надписями «Старт» и «Стоп».
3. Выбрать один из графических файлов компьютера и загрузить изображение из этого файла в элемент PictureBox.
4. Установить интервал срабатывания таймера, равный 10 мс.
5. С помощью кнопки «Старт» и таймера запрограммировать динамическое изменение размеров изображения в диапазоне от (0,0) до максимального размера формы и обратно с шагом 1.
6. С помощью кнопки «Стоп» запрограммировать остановку процесса изменения изображения.
7. Предусмотреть ситуацию, что кнопки «Старт» и «Стоп» не могут быть доступны пользователю одновременно.
Текст программы:
Главная форма проекта:
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 Компьютерная_графика__1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
timer2.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (pictureBox1.Size.Width<this.Size.Width)
{
pictureBox1.Size = new Size(pictureBox1.Size.Width + 1,pictureBox1.Size.Height);
}
if (pictureBox1.Size.Height<this.Size.Height)
{
pictureBox1.Size = new Size(pictureBox1.Size.Width, pictureBox1.Size.Height + 1);
}
if (pictureBox1.Size.Width==this.Size.Width&&pictureBox1.Size.Height==this.Size.Height)
{
timer1.Stop();
timer2.Start();
}
}
private void timer2_Tick(object sender, EventArgs e)
{
if (pictureBox1.Size.Width > 0)
{
pictureBox1.Size = new Size(pictureBox1.Size.Width - 1, pictureBox1.Size.Height);
}
if (pictureBox1.Size.Height > 0)
{
pictureBox1.Size = new Size(pictureBox1.Size.Width, pictureBox1.Size.Height - 1);
}
if (pictureBox1.Size.Width ==0 && pictureBox1.Size.Height ==0)
{
timer2.Stop();
timer1.Start();
}
}
}
}
Контрольный пример:
Образец главной формы проекта:
Результат работы таймера:
Лабораторная работа №2
Задание:
1. Создать проект из одной формы, на которую нанести один элемент PictureBox, две кнопки, таймер, ImageList, метку и ComboBox.
2. С помощью метки нанести на форму текст «Выберите частоту смены изображения».
3. В элемент ComboBox ввести значения интервалов срабатывания таймера: 0,01 с, 0,1 с, 1 с, 1,5 с, 2 с (можно ввести больше значений).
4. Снабдить кнопки надписями: «Начать показ» и «Остановить показ».
5. Загрузить в элемент ImageList заранее подготовленный файлы изображений.
6. С помощью кнопки «Начать показ» и таймера запрограммировать динамическую смену изображений в элементе PictureBox, загружая туда очередное изображение из ImageList (т.е. создать эффект слайд-шоу или анимации).
7. С помощью кнопки «Остановить показ» запрограммировать остановку анимации в элементе PictureBox на текущем кадре.
8. С помощью элемента ComboBox запрограммировать изменение частоты смены изображения.
9. Предусмотреть ситуацию, что кнопки «Остановить показ» и «Начать показ» не могут быть доступны пользователю одновременно.
Текст программы:
Главная форма проекта:
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 Компьютерная_графика__2
{
public partial class Form1 : Form
{
int img = -1;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
button2.Enabled = true;
button1.Enabled = false;
timer1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
button2.Enabled = false;
button1.Enabled = true;
timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
img = img + 1;
pictureBox1.Image = imageList1.Images[img];
if (img == 5)
{
img = -1;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
timer1.Interval = 1;
}
if (comboBox1.SelectedIndex == 1)
{
timer1.Interval = 10;
}
if (comboBox1.SelectedIndex == 2)
{
timer1.Interval = 100;
}
if (comboBox1.SelectedIndex == 3)
{
timer1.Interval = 150;
}
if (comboBox1.SelectedIndex == 4)
{
timer1.Interval = 200;
}
}
}
}
Контрольный пример:
Образец главной формы проекта:
Результат работы таймера: