NewRGBFreeFormTriangleMesh
Sombreado, Gráficos
Descripción
Crea una malla de triángulos sombreados al estilo Gouraud de forma libre, tipo 4 de sombreado PDF, y la registra bajo ShaderName en color DeviceRGB. Los vértices se consumen en grupos de tres; cada grupo describe un triángulo cuyos colores de esquina se interpolan a lo largo de su superficie. Cada triángulo se emite de forma independiente con un indicador de vértice inicial, de modo que no hace falta compartir aristas entre triángulos
Sintaxis
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 | Nombre bajo el que se registra el sombreador; páselo a SetFillShader o SetLineShader para pintar con la malla |
|---|---|
| Vertices | Matriz de registros TPLMeshVertex (X, Y, R, G, B) con componentes de color en el intervalo de 0 a 1; la longitud debe ser al menos 3 y un múltiplo de 3 |
| BitsPerCoordinate | Bits de cuantización para las coordenadas de los vértices, entre 1 y 32 |
| BitsPerComponent | Bits de cuantización por componente de color, entre 1 y 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Rectángulo de descodificación que asigna las coordenadas empaquetadas de los vértices al espacio de coordenadas del sombreado |
Valores devueltos
| 0 | La malla no se creó, porque no hay documento seleccionado, se suministró menos de un triángulo completo o un parámetro de bits está fuera de rango |
|---|---|
| 1 | La malla quedó registrada bajo ShaderName |
Comentarios
Las coordenadas siguen el sistema de origen arriba a la izquierda de la biblioteca y se traducen internamente (ISO 32000-1 §8.7.4.5.5). Para sombreados de degradado sin datos de vértices, véase NewRGBAxialShader
Ejemplo
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');