NewRGBFreeFormTriangleMesh
Gölgelendirme, Grafikler
Açıklama
Serbest biçimli bir Gouraud gölgeli üçgen ağı (PDF 4. gölgelendirme türü) oluşturur ve onu ShaderName adıyla DeviceRGB renginde kaydeder. Köşeler üçlü gruplar hâlinde tüketilir; her grup, köşe renkleri yüzeyi boyunca ara değerlenen bir üçgeni tanımlar. Her üçgen bir başlangıç köşesi bayrağıyla bağımsız olarak yazılır; böylece üçgenler arasında kenar paylaşımı gerekmez
Sözdizimi
Delphi
Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Parametreler
| ShaderName | Gölgelendiricinin kaydedildiği ad; ağla boyamak için onu SetFillShader veya SetLineShader'a geçin |
|---|---|
| Vertices | Renk bileşenleri 0 ile 1 aralığında olan TPLMeshVertex kayıtlarından (X, Y, R, G, B) oluşan dizi; uzunluk en az 3 ve 3'ün katı olmalıdır |
| BitsPerCoordinate | Köşe koordinatları için nicemleme bitleri, 1 ile 32 arasında |
| BitsPerComponent | Renk bileşeni başına nicemleme bitleri, 1 ile 16 arasında |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Paketlenmiş köşe koordinatlarını gölgelendirme koordinat uzayına eşleyen kod çözme dikdörtgeni |
Dönüş değerleri
| 0 | Ağ oluşturulamadı; çünkü hiçbir belge seçili değil, eksiksiz bir üçgenden az köşe verildi veya bir bit parametresi aralık dışında |
|---|---|
| 1 | Ağ ShaderName adıyla kaydedildi |
Açıklamalar
Koordinatlar kitaplığın sol üst kökenli sistemini izler ve içeride çevrilir (ISO 32000-1 §8.7.4.5.5). Köşe verisi gerektirmeyen gradyan gölgelendirmeleri için NewRGBAxialShader'a bakın
Örnek
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');