Мельница данных   (17.11.2017)
Линии

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

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
Прямой срез с продолжением линии на половину толщины линии

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

        Две линии разной толщины, с разными окончаниями и цветами:
set page = CreatePage(Null)

page.DrawGrid

page.LineCap = 1

page.LineWidth = 2

page.Line 10, 10, 30, 30

page.LineWidth = 4

page.SetColor 255, 0, 0

page.LineCap = 2

page.Line 10, 30, 30, 10."I 


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

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

Пунктир

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

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

        Пример 1. Штрих 10 мм, Промежуток 5 мм, Смещения нет
Пример 2. Штрих 10 мм, Промежуток 5 мм, Смещение 5 мм
Пример 3. Различные значения штрихов и промежутков, Смещения нет
set page = CreatePage(Null)

page.DrawGrid

page.LineWidth = 3

page.SetDash Array(10, 5), 0

page.Line 10, 10, 100, 10

page.SetDash Array(10, 5), 5

page.Line 10, 20, 100, 20

page.SetDash Array(10, 5, 3, 2, 12, 20), 0

page.Line 10, 30, 100, 30

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

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

        Пример Звезда без заливки
set page = CreatePage(Null)

page.DrawGrid

page.LineWidth = 3

page.Poly  Array(10, 45, 100, 45, 27, 103, 55, 10, 82, 103, 10, 45), false

Результат:
Звезда
        Пример Звезда с заливкой
set page = CreatePage(Null)

page.DrawGrid

page.LineWidth = 3

page.Poly  Array(10, 45, 100, 45, 27, 103, 55, 10, 82, 103, 10, 45), true

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