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
| ShaderName | Gölgelendiricinin kaydedildiği ad; ağla boyamak için onu SetFillShader veya SetLineShader'a geçin |
|---|---|
| Patches | TPLMeshPatchCorners 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 |
| BitsPerCoordinate | Kontrol noktası 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ş kontrol noktası 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, yama dizisi boş 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.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');