NewRGBCoonsPatchMesh

Gölgelendirme, Grafikler

Açıklama

Bir Coons yama ağı gölgelendirmesi (PDF 6. gölgelendirme türü) oluşturur ve onu ShaderName adıyla DeviceRGB renginde kaydeder. Her yama, P1..P12 sırasıyla (köşeler P1, P4, P7, P10 konumlarında) dört yama köşesi artı kenar başına iki kontrol noktası olan on iki kontrol noktası ve köşe başına bir renk taşır. Yamalar kenar paylaşımı olmadan bağımsız olarak yazılır

Sözdizimi

Delphi

Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
  Const Patches: Array Of TPLMeshPatchCorners;
  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
PatchesTPLMeshPatchCorners kayıtlarından oluşan dizi; PX/PY kontrol noktası koordinatlarını P1..P12 yuvaları olan 0..11 konumlarında tutar ve CR/CG/CB dört köşe rengini 0 ile 1 aralığında tutar
BitsPerCoordinateKontrol noktası 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ş kontrol noktası 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, yama dizisi boş 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.7). İç kontrol noktalı yamalar için NewRGBTensorPatchMesh'e bakın

Örnek

Patch:= Default(TPLMeshPatchCorners);
Patch.PX[0]:= 100;  Patch.PY[0]:= 100;   // P1 corner
Patch.PX[3]:= 300;  Patch.PY[3]:= 100;   // P4 corner
Patch.PX[6]:= 300;  Patch.PY[6]:= 250;   // P7 corner
Patch.PX[9]:= 100;  Patch.PY[9]:= 250;   // P10 corner
Patch.CR[0]:= 1; Patch.CG[0]:= 0; Patch.CB[0]:= 0;
Patch.CR[1]:= 0; Patch.CG[1]:= 0; Patch.CB[1]:= 1;
Patch.CR[2]:= 0; Patch.CG[2]:= 1; Patch.CB[2]:= 0;
Patch.CR[3]:= 1; Patch.CG[3]:= 1; Patch.CB[3]:= 0;
SetLength(Patches, 1);
Patches[0]:= Patch;
PDF.NewRGBCoonsPatchMesh('patch', Patches, 16, 8,
  100, 100, 300, 250);
PDF.SetFillShader('patch');