NewRGBFreeFormTriangleMesh

Заливка, Графика

Описание

Создаёт свободную треугольную сетку с затенением Гуро, тип затенения PDF 4, и регистрирует её под именем ShaderName в цвете DeviceRGB. Вершины потребляются группами по три, каждая группа описывает один треугольник, угловые цвета которого интерполируются по его поверхности. Каждый треугольник выводится независимо с флагом начальной вершины, поэтому совместное использование рёбер между треугольниками не требуется

Синтаксис

Delphi

Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
  BitsPerComponent: Integer;
  Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;

Параметры

ShaderNameИмя, под которым регистрируется шейдер; передайте его в SetFillShader или SetLineShader, чтобы рисовать сеткой
VerticesМассив записей TPLMeshVertex (X, Y, R, G, B) с компонентами цвета в диапазоне от 0 до 1; длина должна быть не меньше 3 и кратна 3
BitsPerCoordinateБиты квантования координат вершин, от 1 до 32
BitsPerComponentБиты квантования на компонент цвета, от 1 до 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Прямоугольник декодирования, отображающий упакованные координаты вершин в координатное пространство затенения

Возвращаемые значения

0Сетка не была создана, потому что документ не выбран, передано меньше одного полного треугольника или параметр битов вне диапазона
1Сетка зарегистрирована под именем ShaderName

Примечания

Координаты следуют системе библиотеки с началом в левом верхнем углу и переводятся внутри (ISO 32000-1 §8.7.4.5.5). О градиентных затенениях без данных вершин см. NewRGBAxialShader

Пример

SetLength(Vertices, 3);
Vertices[0].X:= 100; Vertices[0].Y:= 100;
Vertices[0].R:= 1; Vertices[0].G:= 0; Vertices[0].B:= 0;
Vertices[1].X:= 400; Vertices[1].Y:= 100;
Vertices[1].R:= 0; Vertices[1].G:= 1; Vertices[1].B:= 0;
Vertices[2].X:= 250; Vertices[2].Y:= 350;
Vertices[2].R:= 0; Vertices[2].G:= 0; Vertices[2].B:= 1;
PDF.NewRGBFreeFormTriangleMesh('tri', Vertices, 16, 8,
  100, 100, 400, 350);
PDF.SetFillShader('tri');