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

ShaderNameGölgelendiricinin kaydedildiği ad; ağla boyamak için onu SetFillShader veya SetLineShader'a geçin
VerticesRenk 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
BitsPerCoordinateKöşe koordinatları için nicemleme bitleri, 1 ile 32 arasında
BitsPerComponentRenk bileşeni başına nicemleme bitleri, 1 ile 16 arasında
BoundsX0, BoundsY0, BoundsX1, BoundsY1Paketlenmiş köşe koordinatlarını gölgelendirme koordinat uzayına eşleyen kod çözme dikdörtgeni

Dönüş değerleri

0Ağ 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
1Ağ 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');