NewRGBFreeFormTriangleMesh
음영, 그래픽
설명
자유형 Gouraud 셰이딩 삼각형 메시, 즉 PDF 셰이딩 유형 4를 만들어 DeviceRGB 색상의 ShaderName으로 등록함. 정점은 세 개씩 묶어 소비되며 각 묶음이 하나의 삼각형을 이루고 모서리 색상이 그 표면에 걸쳐 보간됨. 모든 삼각형은 시작 정점 플래그와 함께 독립적으로 출력되므로 삼각형 사이의 변 공유가 필요 없음
구문
Delphi
Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;매개변수
| ShaderName | 셰이더가 등록되는 이름. 메시로 그리려면 SetFillShader 또는 SetLineShader에 전달함 |
|---|---|
| Vertices | 색상 구성 요소가 0부터 1 사이인 TPLMeshVertex 레코드(X, Y, R, G, B) 배열. 길이는 최소 3이어야 하고 3의 배수여야 함 |
| BitsPerCoordinate | 정점 좌표의 양자화 비트 수. 1부터 32 사이 |
| BitsPerComponent | 색상 구성 요소별 양자화 비트 수. 1부터 16 사이 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | 묶인 정점 좌표를 셰이딩 좌표 공간으로 매핑하는 디코드 사각형 |
반환 값
| 0 | 메시가 만들어지지 않음. 문서가 선택되지 않았거나 완전한 삼각형 하나보다 적게 전달되었거나 비트 매개변수가 범위를 벗어났기 때문 |
|---|---|
| 1 | 메시가 ShaderName으로 등록됨 |
비고
좌표는 라이브러리의 왼쪽 위 원점 체계를 따르며 내부에서 변환됨(ISO 32000-1 §8.7.4.5.5). 정점 데이터 없이 그라데이션 셰이딩을 만들려면 NewRGBAxialShader를 참조
예제
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');