Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
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); } private void pictureBox2_MouseUp(object sender, MouseEventArgs e) { switch (this.FigureList.SelectedIndex ) // Выбор фигуры { case 0: // Выбрана линия this.g.DrawLine(new Pen(this.pictureBox1.BackColor, (float)this.numericUpDown1.Value), this.startPoint, new Point (e. X, e. Y));
// Метод Invalidate () делает недействительной область рисования элемента // управления pictureBox 2, добавляя ее к области обновления элемента, // которая будет перерисована при следующей операции рисования, // и вызывает отправку сообщения элементу управления this.pictureBox2.Invalidate(); break;
case 1: // Выбран прямоугольник This.g.DrawRectangle(new Pen(this.pictureBox1.BackColor, (float)this.numericUpDown1.Value), this.startPoint.X, this.startPoint.Y, e.X this.startPoint.X, e.Y-this.startPoint.Y); if (this.FillCheckbox.Checked) { this.g.FillRectangle(new Solid-Brush (this.pictureBox1.BackColor), This.startPoint.X, this.startPoint.Y, e.X - this.startPoint.X, e.Y – this.startPoint.Y); } this.pictureBox2.Invalidate(); break; case 2: // Выбран эллипс this.g.DrawEllipse(new Pen(this.pictureBox1.BackColor, (float)this.numericUpDown1.Value), this.startPoint.X, this.startPoint.Y, e.X – this.startPoint.X, e.Y - this.startPoint.Y);
if (this.FillCheckbox.Checked) { this.g.FillEllipse(new Solid-Brush (this.pictureBox1.BackColor), This.startPoint.X, this.startPoint.Y, e.X - this.startPoint.X, e.Y – this.startPoint.Y); } this.pictureBox2.Invalidate(); break; } } // Щелчок по пункту меню New private void newToolStripMenuItem_Click(object sender, EventArgs e) { this.g.Clear(Color.White); this.pictureBox2.Invalidate(); } // Щелчок по пункту меню Exit private void exitToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } // Щелчок по пункту меню Open private void openToolStripMenuItem_Click(object sender, EventArgse) { if (this.openFileDialog1.ShowDialog() == DialogResult.OK) { this.g.Clear(Color.White); //Можно загружать файлы форматов BMP, GIF, JPEG, PNG, TIFF This.g.DrawImage(Image.FromFile(this.openFileDialog1.FileName), new Point(0,0)); this.pictureBox2.Invalidate(); } } // Щелчок по пункту меню Save private void saveToolStripMenuItem_Click(object sender, EventArgs e) { if (this.saveFileDialog1.ShowDialog() == DialogResult.OK) { // Сохранение изображения из объекта b класса Bitmap в файле, имя // которого задается в стандартном диалоговом окне saveFileDialog 1 // Файл сохраняется в формате JPEG // Можно сохранить файл также в форматах BMP, GIF, PNG, TIFF this.b.Save(this.saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg); } } } }
Порядок выполнения работы
1. Изучить теоретические сведения и примеры, представленные в гл. 12 «Программирование графики» учебного пособия В. В. Вдовенко «Разработка приложений на языке С#» (см. с. 258–272), а также пример программы, представленный выше. 2. Ответить на контрольные вопросы. 3. Выполнить практическое задание. 4. Составить отчет в электронном виде, который должен содержать титульный лист, цель лабораторной работы, задание, ответы на контрольные вопросы, листинг программы и результаты ее работы.
Контрольные вопросы и задания
1. Дайте определение графического интерфейса устройства. 2. Какой класс библиотеки FCL является базовым при выводе графики? 3. Какие способы создания объекта класса Grap h ics вы знаете? Приведите синтаксис создания объекта класса Grap h ics. 4. Какое событие наступает всякий раз, когда у окна имеется
5. Обработчик какого события должен быть переопределен 6. Каким образом в приложении можно задать цвет изображения? 7. В чем состоит отличие задания цвета изображения с помощью структуры Color и с помощью метода FromArgb? 8. Какое стандартное диалоговое окно можно использовать для выбора из него цвета изображения? 9. Какие группы методов класса Graphics применяются для рисования геометрических фигур? 10. Объект какого класса предназначен для вывода контуров фигур? 11. Какой метод можно использовать для рисования текста? 12. Каким образом выполняется заливка поверхности фигуры? 13. Приведите пример кода, позволяющего выводить эллипс без контура и эллипс, залитый желтым цветом. 14. Какой класс следует использовать для загрузки изображения из файла? Практическое задание Разработать приложение Простой графический редактор. Приложение должно содержать меню и панель инструментов, посредством которых можно не только выбрать изображаемую фигуру, но и задать свойства объектов рисования: – цвет, ширину, стиль перьев; – цвет, стиль кистей. Программа должна предоставлять пользователю возможность сохранять изображение в файле и загружать изображение из файла. Изображение, нарисованное в окне приложения, не должно В меню необходимо предусмотреть пункт О программе, при выборе которого будет выводиться диалоговое окно, содержащее справочную информацию. Лабораторная работа 7 Работа с файловой системой Цель работы: получить практические навыки применения основных классов библиотеки FCL, позволяющих выполнять различные операции с файлами и папками на диске. Задачи работы: – изучить классы Path, FileSystemInfo, Directory, DirectoryInfo, File и FileInfo библиотеки FCL, используемые для работы с объектами файловой системы; – выполнить практическое задание по разработке приложения на языке С#.
|
||||||
Последнее изменение этой страницы: 2022-09-03; просмотров: 68; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.28.197 (0.019 с.) |