NewRGBFreeFormTriangleMesh
Sombreamento, gráficos
Descrição
Cria uma malha de triângulos com sombreamento Gouraud de forma livre, tipo 4 de sombreadura PDF, e regista-a sob ShaderName em cor DeviceRGB. Os vértices são consumidos em grupos de três, cada grupo descrevendo um triângulo cujas cores de canto interpolam pela superfície. Cada triângulo é emitido de forma independente com uma flag de vértice inicial, pelo que não é exigida partilha de arestas entre triângulos
Sintaxe
Delphi
Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Parâmetros
| ShaderName | Nome sob o qual a sombreadura é registada; passe-o a SetFillShader ou SetLineShader para pintar com a malha |
|---|---|
| Vertices | Array de registos TPLMeshVertex (X, Y, R, G, B) com componentes de cor no intervalo de 0 a 1; o comprimento tem de ser pelo menos 3 e múltiplo de 3 |
| BitsPerCoordinate | Bits de quantização para as coordenadas dos vértices, entre 1 e 32 |
| BitsPerComponent | Bits de quantização por componente de cor, entre 1 e 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Retângulo de descodificação que mapeia as coordenadas empacotadas dos vértices para o espaço de coordenadas da sombreadura |
Valores de retorno
| 0 | A malha não foi criada, porque nenhum documento está selecionado, foi fornecido menos do que um triângulo completo ou um parâmetro de bits está fora do intervalo |
|---|---|
| 1 | A malha foi registada sob ShaderName |
Observações
As coordenadas seguem o sistema de origem no canto superior esquerdo da biblioteca e são traduzidas internamente (ISO 32000-1 §8.7.4.5.5). Para sombreaduras de gradiente sem dados de vértices, consulte NewRGBAxialShader
Exemplo
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');