Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МП_ПТ40349.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.14 Mб
Скачать

Проект 5. «Контурный текст»

Текст, выводимый на экран, по умолчанию заполнен каким-либо цветом. Для создания контура символов используется класс DrawPath. Данный класс позволяет создавать различные контуры из фигур и текстов.

  1. Создайте новый проект. Для этого введите команду File-New Project... Выберите тип проекта - Windows Application (Windows-приложение). В окне Name задайте имя проекта – lr9_5.

  2. Активизируйте форму Form1 щелчком мыши. В окне Properties (Свойства объекта) выберите свойство Text и присвойте ему значение Контурный текст:

  1. Перед описанием класса Form1 добавьте строку, подключающую требуемую библиотеку:

Imports System.Drawing.Drawing2D

Public Class Form1

…..…………………..

End Class

  1. Добавьте событийную процедуру Form1_Paint(…) – рисование формы. Для этого в поле Class Name в режиме редактирования кода программы установите (Form Events), в поле Method NamePaint:

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint

' Создаем траекторию

Dim pth As New GraphicsPath

' Добавляем строку

pth.AddString("Программа", _

New FontFamily("Tahoma"), _

0, 50, New Point(20, 30), _

StringFormat.GenericDefault)

' Создаем синее перо

Dim p As New Pen(Color.Blue, 2)

' Выводим контурный текст

e.Graphics.DrawPath(p, pth)

' Очистим траекторию

pth.Reset()

' Добавляем новый текст

pth.AddString("Программа", _

New FontFamily("Verdana"), _

0, 50, New Point(30, 100), _

StringFormat.GenericTypographic)

' Заливаем траекторию кистью

e.Graphics.FillPath(Brushes.Peru, pth)

' Выводим на экран

e.Graphics.DrawPath(p, pth)

' Освобождаем ресурсы

pth.Dispose()

End Sub

  1. Сохраните проект. Проверьте работу созданного приложения:

Проект 6. «Раскаленный текст»

  1. Создайте новый проект. Для этого введите команду File-New Project... Выберите тип проекта - Windows Application (Windows-приложение). В окне Name задайте имя проекта – lr9_6.

  2. Активизируйте форму Form1 щелчком мыши. В окне Properties (Свойства объекта) выберите свойство Text и присвойте ему значение Раскаленный текст:

  3. Перед описанием класса Form1 добавьте строку, подключающую требуемую библиотеку:

Imports System.Drawing.Drawing2D

Public Class Form1

…..…………………..

End Class

  1. Добавьте событийную процедуру Form1_Paint(…) – рисование формы. Для этого в поле Class Name в режиме редактирования кода программы установите (Form Events), в поле Method NamePaint (текст процедуры содержится в рабочей директории в файле Paint.txt):

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint

Me.BackColor = Color.Black

' Создадим рисунок в заданной пропорции

Dim bm As New Bitmap(CInt(Me.ClientSize.Width / 5), _

CInt(Me.ClientSize.Height / 5))

' Создадим объект GraphicsPath

Dim pth As New GraphicsPath

' Добавим строку в заданном стиле

pth.AddString("Электрический эффект", _

New FontFamily("Tahoma"), _

CInt(FontStyle.Bold), 48, _

New Point(10, 20), _

StringFormat.GenericTypographic)

' Получим объект Graphics

Dim g As Graphics = Graphics.FromImage(bm)

' Создадим матрицу для создания эффекта

Dim mx As Matrix

mx = New Matrix(1.0F / 5, 0, 0, _

1.0F / 5, -(1.0F / 5), _

-(1.0F / 5))

' Выберем режим сглаживания

g.SmoothingMode = SmoothingMode.AntiAlias

' Преобразуем объект Graphics

g.Transform = mx

' Создадим перо

Dim p As New Pen(Color.Tomato, 3)

' Рисуем вокруг созданного пути

g.DrawPath(p, pth)

' и заполняем для лучшего эффекта

g.FillPath(Brushes.Yellow, pth)

' Установим режим сглаживания для контура

g.SmoothingMode = SmoothingMode.AntiAlias

e.Graphics.InterpolationMode = _

InterpolationMode.HighQualityBicubic

' и расширяем картинку для создания размытости краев

e.Graphics.DrawImage(bm, ClientRectangle, 0, 0, _

bm.Width, bm.Height, GraphicsUnit.Pixel)

' Перерисовываем оригинальный текст

g.FillPath(Brushes.Black, pth)

' Освобождаем ресурсы

g.Dispose()

pth.Dispose()

End Sub

  1. Сохраните проект. Проверьте работу созданного приложения: