Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Построение изображений с использованием графических примитивов






 

В векторных чертежах графическим примитивом называют элементарные составляющие чертежа: отрезок, дуга, символ, окружность и др. Здесь имеем дело с растровой графикой, но в данном случае подход тот же – по координатам рисуем те же фигуры. Система координат такая: начало координат – это левый верхний угол формы, ось Ox направлена вправо, а Oy – вниз. Задача состоит в том, чтобы рисовать в форме: окружность, отрезок, прямоугольник, сектор, текст, эллипс и закрашенный сектор. Выбор того или иного графического примитива осуществить через элемент управления ListBox. Для решения этой задачи создаем форму и перетаскиваем в нее из Панеля элементов элемент управления ListBox. Далее – двойной щелчок в пределах формы, где в пустом обработчике события Form1_Load создаем список графических примитивов, заполняя коллекцию (Items) элементов списка ListBox1 [9, с.118]..

Далее переходим в программный код и вводим соответствующий текст, представленный ниже:

 

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles MyBase.Load

ListBox1.Items.AddRange(New Object() {" Окружность", " Отрезок",

" Прямоугольник", " Сектор", " Текст",

" Эллипс", " Закрашенный сектор" })

' Font = New Font(" Times New Roman", 14)

Me.Text = " Выбери графический примитив"

End Sub

Private Sub ListBox1_Click(ByVal sender As Object,

ByVal e As System.EventArgs) Handles ListBox1.Click

' Создание графического объекта

Dim graph As Graphics = MyBase.CreateGraphics

' Создание пера для рисования им фигур

Dim pen1 As New Pen(Color.Red)

' Создание кисти для " закрашивания" фигур

Dim brush1 As New SolidBrush(Color.Red)

' Очистка области рисунка путем ее окрашивания в

' первоначальный цвет формы graph.Clear(Color.FromName(" Control"))

' graph.Clear(ColorTranslator.FromHtml(" #EFEBDE"))

Select Case ListBox1.SelectedIndex

Case 0 ' — выбрана окружность:

graph.DrawEllipse(pen1, 50, 50, 150, 150)

Case 1 ' — выбран отрезок:

graph.DrawLine(pen1, 50, 50, 200, 200)

Case 2 ' — выбран прямоугольник:

graph.DrawRectangle(pen1, 50, 30, 150, 180)

Case 3 ' — выбран сектор:

graph.DrawPie(pen1, 40, 50, 200, 200, 180, 225)

Case 4 ' — выбран текст:

Dim s As String

s = " Каждый во что-то верит, но" &

vbCrLf & " жизнь преподносит сюрпризы."

graph.DrawString(s, Font, brush1, 10, 100)

Case 5 ' — выбран эллипс:

graph.DrawEllipse(pen1, 30, 30, 150, 200)

Case 6 ' — выбран закрашенный сектор:

graph.FillPie(brush1, 20, 50, 150, 150, 0, 45)

End Select

End Sub

 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

' Методы очистки формы:

Dim Графика = CreateGraphics()

Графика.Clear(Me.BackColor)

' Графика.Clear(SystemColors.Control1)

' Графика.Clear(Color.FromName(" Control"))

' Графика.Clear(Color.FromKnownColor(KnownColor.Control))

' Графика.Clear(ColorTranslator.FromHtml(" #FOFOFO"))

' Me.Refresh() ' Этот метод также перерисовывает форму

End Sub

End Class

В программе, обрабатывая событие Click по выбранному элементу списка, создаю: графический объект graph, перо pen1 для рисования им фигур, кисть brush1 для " закрашивания" ею фигур. Далее очищаем область рисования путем окрашивания формы в первоначальный цвет " Control" или #EFEBDE (как записано в комментарии), используя метод Clear() объекта graph: graph.Clear(Color.FromName(" Control")) Процедура окрашивания формы в какой-либо цвет выглядела бы менее громоздко, если бы использоваи какую-либо константу, означающую цвет, например, White или любую другую из списка 146 констант цвета. Тогда бы написали:

graph.Clear(Color.White) В таком случае пришлось бы при инициализации переменных при загрузке формы задать другой цвет формы:

Me.BackColor = System.Drawing.Color.White Однако хотелось бы, чтобы цвет формы оставался первоначальным – " Control". Кстати, этот цвет можно назвать цветом Microsoft: это цвет Windows Explorer, Internet Explorer и пр. После очистки формы, используя свойство SelectIndex, которое указывает на номер выбранного пользователем элемента списка (от 0 до 6), рисуем выбранную фигуру. На рисунке 13 представлен фрагмент работы программы [9, с.124].

 

Рис.13 – Окно рисования графического примитива на форме







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.