Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
к зачету по техпрог.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
139.43 Кб
Скачать

Система координат. Система координат и единиц измерения

  • Система координат для задания положения и размеров ЭУ, основывается на координатах устройства и основной единицей измерения при рисовании является пиксель (pixel) – наименьший логический элемент двумерного цифрового изображения в растровой графике.

  • Растровое компьютерное изображение состоит из пикселей, расположенных по строкам и столбцам. Точки экрана описываются парами координат (x, y), где координата x увеличивается слева на право, а координата y увеличивается сверху вниз.

  • Размещение начала координат зависит от того, задаются ли экранные координаты (координаты экрана) или клиентские координаты (координаты клиентской области окна родителя).

    • Экранные координаты задают позицию окна на экране дисплея и их началом является верхний – левый угол экрана. Полное положение окна задается структурой Rectangle, содержащей экранные координаты двух точек, определяющих верхний – левый и правый – нижний углы окна.

    • Клиентские координаты задают положение точки в клиентской области окна. Их начальной точкой является верхний – левый угол клиентской области формы или ЭУ.

Классы для описания геометрических объектов

  • Для работы с координатами и размерами ЭУ используются определенные в библиотеке FCL структуры

    • Point, PointF, (поля X и Y)

    • Size, SizeF (поля Height и Width)

    • Rectangle (поля X , Y, Height и Width).

  • Структуры Point и Size позволяют задать прямоугольную область – структуру Rectangle. Конструктору прямоугольника можно передать в качестве аргументов две структуры – точку, задающую координаты левого верхнего угла прямоугольника, и размер – высоту и ширину прямоугольника.

Класс Point – точка (x,y) (PointF)

Point pt = new Point (100,75);

Класс Size – размер (длина ширина) (SizeF)

Size sz = new Size (60,100);

Класс Rectangle – прямоугольник (RectangleF) -верхний угол, длина, ширина

Rectangle rec = new Rectangle(new Point(50,70),new Size(40,40));

  • координаты левого верхнего и правого нижнего угла

Rectangle rec = new Rectangle(x, y, width, height);

Изменение системы координат

  • Перенос центра системы

gfx.TranslateTransform(x, y);

  • Поворот системы кооординат

gfx.RotateTransform(угол в градусах);

  • Изменение единиц измерения

gfx.PageUnit = GraphicsUnit.Millimeter;

  • Задание масштаба

    • gfx.PageScale = 2F; // увеличить в 2 раза

    • gfx.PageScale = 0.5F; // уменьшить в 2 раза

Перечисление единиц измерения GraphicsUnit

  • GraphicsUnit.Pixel – пиксели (по умолчанию)

  • GraphicsUnit.Point – поинты (1/72 дюйма)

  • GraphicsUnit.Inch – дюйм (2.54 см)

  • GraphicsUnit.Document – 1/300 дюйма

  • GraphicsUnit.Millimeter – миллиметр

Классы инструментов рисования

  • Color – цвет пикселя.

  • Pen – перо, описывает шаблон линии.

  • Brush – кисть, описывает шаблон заполнителя замкнутых фигур.

  • Font – шаблон шрифта для вывода символов.

Класс Color (цвет)

  • Статический класс имеет 140 различных статических цветов

  • Статический метод создания нового цвета – комбинация (red, green, blue)

Color.FromArgb (int red, int green, int blue);

Красный цвет: red = 0 - 255;

Зеленый цвет: green = 0 – 255;

Синий цвет: blue = 0 – 255;

Color.FromArgb (int a, int red, int green, int blue);

а – прозрачность.

Класс Pen (перо)

  • Статический класс Pens – перья всех стандартных цветов.

  • Можно создать свое перо

Pen pen = new Pen(color);

Pen (Color color);

Pen (Color color, float width);

Основные свойства класса Pen:

  • DashStyle для задания стиля линии - Solid, Dot, Dash, DashDot, DashDotDot, custom (System.Drawing.Drawing2D.DashStyle)

  • Color - цвет

  • Width - ширина

Кисть Brush (кисть)

  • Статический класс Brushes – кисти всех стандартных цветов

Можно создавать свои кисти

  • Класс SolidBrush – одноцветная кисть

  • Класс HatchBrush – с геометрическим, регулярным рисунком

  • Класс TextureBrush – кисть с произвольным заданным рисунком

  • Класс LinearGradientBrush – с градиентной заливкой

Класс Font (шрифт)

  • Шрифт – способ рисования символов.

  • Типы шрифтов

    • Растровые

    • Векторные

    • Контурные – TrueType

  • При выводе текста нужно указывать используемый шрифт.

  • В ОС устанавливаются семейства (шаблоны) шрифтов. На их основе создаются конкретные шрифты.

Методы рисования

  • Рисование текста

  • Рисование линий

  • Рисование фигур

Класс StringFormat

  • Класс для задания положения строки в прямоугольной области

StringFormat sf = new StringFormat();

  • Основные свойства:

    • Положение по горизонтали

sf.Alignment = StringAlignment.Near (слева), Center (по центру), Far (справа)

    • Положение вертикали

sf.LineAlignment = StringAlignment.Near (сверху), Center (по центру), Far (снизу)

Измерение размера текста

  • Для определения размеры выводимого текста используется метод класса Graphics: MeasureString(str, Font)

  • Например:

Sizef s = gfx.MeasureString(str, Font);

Рисование текста под углом

  • Устанавливаем начало координат в точку (x, y).

gfx.TranslateTransform(x, y);

  • Поворот системы кооординат

gfx.RotateTransform(угол в градусах)

Рисование линий

  • DrawLine(Pen pn, Point pt1, Point pt2);

  • DrawLine(Pen pn, int x, int y, int x1, int y1);

  • DrawLines(Pen pn, Point [] pt);

Рисование фигур

  • DrawRectangle(…) – рисование прямоугольника

  • DrawEllipse(…) – рисование эллепса

  • DrawCurve(…) – рисование кривой

  • DrawPoligon(…) – рисование многоугольника

  • DrawPie(…) – рисование сектора круга

Закраска фигур

  • FillRectangle(…), FillEllipse(…), FillPoligon(…), FillPie(…).

Работа с изображениями

Пространство имен System.Drawing.Imaging

  • Основные классы

- Image – абстрактный базовый класс для Bitmap. Имеет набор методов для чтения и записи изображений из файлов

- Bitmap - основной класс для создания изображения в оперативной памяти.

- Поддерживаемые графические форматы:

- Bitmaps (BMP),

- Graphics Interchange Format (GIF),

- Joint Photographic Experts Group (JPEG),

- Portable Network Graphics (PNG),

- Tag Image File Format (TIFF).