Мельница данных- Графика  (раздел целиком)  (29.03.2024)
Графика

1. Линии

Для отрисовки линий используется процедура

procedure Line(X1: Double; Y1: Double; X2: Double; Y2: Double);
Здесь:

  • X1 - координата начала линии по горизонтали в миллиметрах от верхнего левого угла листа.
  • Y1 - координата начала линии по вертикали в миллиметрах от верхнего левого угла листа.
  • X2 - координата конца линии по горизонтали в миллиметрах от верхнего левого угла листа.
  • Y2 - координата Конца линии по вертикали в миллиметрах от верхнего левого угла листа.

Для задания толщины линии используется свойство

property LineWidth: Double
Значение толщины задается в миллиметрах. Значение по умолчанию - минимально возможная единица рисования для устройства. Так для монитора - 1 pixel, для принтера - 1 dot (точка)

Для задания стиля отрисовки начала/окончания линии используется свойство property LineCap: TPDFLineCap
Возможные стили:
Значение свойства: Отображение: Описание:
0Линия 0Прямой срез точно по точкам начала и окончания линии (по умолчанию)
1Линия 1С закруглением
2Линия 2Прямой срез с продолжением линии на половину толщины линии

Объявление цвета линии.

Пример
Две линии разной толщины, с разными окончаниями и цветами:
01set page = CreatePage(Null)
02
03page.DrawGrid
04
05page.LineCap = 1
06
07page.LineWidth = 2
08
09page.Line 10, 10, 30, 30
10
11page.LineWidth = 4
12
13page.SetColor 255, 0, 0
14
15page.LineCap = 2
16
page.Line 10, 30, 30, 10."I 


Результат:
2 линии

При необходимости соединения линий под углом в определенной точке можно задать тип соединения. Для объявления типа соединения используется свойство property LineJoin: TPDFLineJoin;
Типы соединения двух линий:
Значение свойстваОтображениеОписание
02 линии 0С острым углом
12 линии 1С закруглением
22 линии 2С обрезанным углом

Пунктир

Для создания пунктира используется процедура отображения линии с предварительно объявленными дополнительными значениями.

Процедура procedure SetDash(DashArray: OleVariant; Phase: Integer); Здесь DashArray - массив значений в миллиметрах, указывающий последовательность чередования штрихов и пропусков на линии, Phase - смещение в миллиметрах по линии.

Пример
Пример 1. Штрих 10 мм, Промежуток 5 мм, Смещения нет
Пример 2. Штрих 10 мм, Промежуток 5 мм, Смещение 5 мм
Пример 3. Различные значения штрихов и промежутков, Смещения нет
01set page = CreatePage(Null)
02
03page.DrawGrid
04
05page.LineWidth = 3
06
07page.SetDash Array(10, 5), 0
08
09page.Line 10, 10, 100, 10
10
11page.SetDash Array(10, 5), 5
12
13page.Line 10, 20, 100, 20
14
15page.SetDash Array(10, 5, 3, 2, 12, 20), 0
16
page.Line 10, 30, 100, 30

Результат:
Пунктир 1

Ломанная линия - здесь непрерывная линия, состоящая из нескольких прямых. Для отображения ломанной используется процедура procedure Poly(Points: OleVariant; Fill: WordBool), где Points - массив координат точек соединяемых прямыми, а Fill - признак заливки полученной замкнутой фигуры (если замкнута).

Пример
Пример Звезда без заливки
1set page = CreatePage(Null)
2
3page.DrawGrid
4
5page.LineWidth = 3
6
page.Poly  Array(10, 45, 100, 45, 27, 103, 55, 10, 82, 103, 10, 45), false

Результат:
Звезда
Пример
Пример Звезда с заливкой
1set page = CreatePage(Null)
2
3page.DrawGrid
4
5page.LineWidth = 3
6
page.Poly  Array(10, 45, 100, 45, 27, 103, 55, 10, 82, 103, 10, 45), true

Результат:
Звезда заливка

2. Прямоугольник

Rectangle (Прямоугольник) - для создания используется процедура:

procedure Rectangle(X1: Double; Y1: Double; Width: Double; Height: Double; Fill: WordBool);
Здесь:

  • X1 - координата верхнего левого угла прямоугольника по горизонтали в миллиметрах от верхнего левого угла листа шаблона.
  • Y1 - координата верхнего левого угла прямоугольника по вертикали в миллиметрах от верхнего левого угла листа шаблона.
  • Width - ширина прямоугольника с миллиметрах.
  • Height - высота прямоугольника с миллиметрах.
  • Fill - признак заливки прямоугольника (True/False). Если значение True то заливка производится объявленным заранее цветом (см. Объявление цвета). Если False - заливка не производится. Прямоугольник отрисовывается линиями с предварительно заданной толщиной. См. Линии
Пример
Пример 1. Создание красного прямоугольника:
1set page = CreatePage(Null)
2
3page.SetColor 255, 0, 0
4
5page.Rectangle 10, 15, 40, 20, True
6
page.DrawGrid
Результат:
Прямоугольник
Пример 2. Пустой прямоугольник без задания цвета:
1set page = CreatePage(Null)
2
3page.DrawGrid
4
5page.Rectangle 12, 17, 42, 25, false
6
page.DrawGrid

Результат:
Прямоугольник false

Также существует возможность изменения стиля отображения углов прямоугольника. Для этого нужно использовать свойство property LineJoin: TPDFLineJoin;

Значение свойстваОтображениеОписание
02 линии 0С острым углом
12 линии 1С закруглением
22 линии 2С обрезанным углом

Пример построения прямоугольников с различными типами соединения сторон:

Пример
01set page = CreatePage(Null)
02
03page.DrawGrid
04
05page.LineWidth = 4
06
07page.LineJoin = 0
08
09page.Rectangle 10, 10, 20, 10, false
10
11page.LineJoin = 1
12
13page.Rectangle 40, 10, 20, 10, false
14
15page.LineJoin = 2
16
page.Rectangle 70, 10, 20, 10, false


Результат:
3 прямоугольника

3. Вставка готовых изображений

Для вставки на создаваемую страницу готового изображения используется процедура procedure Image(const FileName: WideString; X: Double; Y: Double; Width: Double; Height: Double)

Параметры:

  • const FileName - имя файла изображения и путь к нему на жестком диске. Задается в кавычках.
  • X - координата левой верхней точки изображения по отношению к верхнему левому углу страницы по горизонтали в миллиметрах
  • Y - координата левой верхней точки изображения по отношению к верхнему левому углу страницы по вертикали в миллиметрах
  • Width - ширина изображения в миллиметрах
  • Height - высота изображения в миллиметрах.
Пример
1set page = CreatePage(Null)
2page.drawgrid
page.Image "c:\mill.bmp", 10,10, 30, 30

Результат:
Картинка

Вне зависимости от размера исходного изображения, при вставке изображения на создаваемую страницу оно будет растянуто по размерам, прописанным в процедуре.


4. Векторная графика

Язык PostScript, с помощью которого создаются векторные изображения для PDF-документа, поддерживает создание типичных примитивных объектов, таких как:

  • Прямые и ломанные линии
  • Многоугольники
  • Окружности и эллипсы
  • Кривые Безье
  • Текст

При создании векторного изображения на странице PDF-документа в приложениях Платформы, команды построения примитивных объектов PostScript передаются на исполнение при помощи процедуры Perform. Подробнее об операторах и командах PostScript для создания PDF-документов можно узнать на сайте Adobe