ПРОГРАММИРОВАНИЕ ГРАФИКИ




Цель работы: получить практические навыки применения
основных классов библиотеки FCL,составляющих графический
интерфейс устройств (Graphical Device Interface, GDI).

Задачи работы:

– изучить классы Graphics, Color, Pen, Brush, Image библиотеки FCL, обеспечивающие вывод графики в приложениях для Windows;

– выполнить практическое задание по разработке приложения на языке С#.

 

Краткие теоретические сведения

Рассмотрим пример разработки приложения, обеспечивающего вывод простых геометрических фигур, а также сохранение построенного изображения в файле (рис. 6.1).

Меню File содержит команду New для создания нового изображения, Open для загрузки изображения из файла, Save для сохранения изображения в файле и Exit для завершения работы приложения. Должны присутствовать следующие элементы управления:

pictureBox1 загружает стандартное диалоговое окно colorDialog1, в котором можно выбрать цвет изображения;

numericUpDown1 позволяет выбирать толщину пера, которым рисуется контур изображения;

– флажок FillCheckbox устанавливает признак заливки фигуры;

– с помощью списка FigureList можно выбрать тип геометрической фигуры;

pictureBox2 обеспечивает поверхность рисования.

FigureList
FillCheckbox
numericUpDown1
pictureBox1
pictureBox2

Рис. 6.1. Главное окно приложения

 

В процессе проектирования приложения на форме нужно разместить невизуальные элементы управления openFileDialog для выбора имени открываемого файла, saveFileDialog для сохранения файла и colorDialog для выбора цвета изображения.

Код приложения приведен в листинге 6.1.

 

Листинг 6.1. Код приложения для вывода простых геометрических фигур

Namespace WindowsApplication2

{

Public partial class Form1: Form

{

Public Form1()

{

InitializeComponent();

}

// Класс Bitmap инкапсулирует точечный рисунок GDI+, состоящий из

// данных пикселей графического изображения и атрибутов рисунка

// Объект класса Bitmap используется для работы с изображениями,

// определяемыми данными пикселей

Bitmap b;

Graphics g;

// Класс Point представляет упорядоченную пару целых чисел –

// координат Х и Y, определяющую точку на двумерной плоскости

Point startPoint;

// Щелчок по элементу pictureBox1 позволяет выполнить выбор цвета

// изображения

private void pictureBox1_Click(object sender, EventArgs e)

{

this.colorDialog1.Color = this.pictureBox1.BackColor;

if (this.colorDialog1.ShowDialog() == DialogResult.OK)

{

this.pictureBox1.BackColor = this.colorDialog1.Color;

}

}

Private void Form1_Load(object sender, EventArgs e)

{

// Задание размеров поверхности рисования

this.b = new Bitmap(this.pictureBox2.Size.Width,

this.pictureBox2.Size.Height);

this.g = Graphics.FromImage(this.b);

this.pictureBox2.Image = b;

this.g.Clear(Color.White);

this.FigureList.SelectedIndex = 0;

}

Private void pictureBox2_MouseDown(object sender,

MouseEventArgs e)

{

this.startPoint = new Point(e.X, e.Y);

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-09-06 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: