TGPPathGradientBrush 依指定路徑 (或點陣列) 產生漸層:路徑內部為中心色,邊界為環繞色 (可多色)、中心點可偏移、支援 Gamma 校正、插值色彩/位置陣列。漸層範圍由路徑外接矩形決定,繪製區域可大於路徑 (外部延伸環繞色)。
path.AddEllipse(0,0,166,88);
pb := TGPPathGradientBrush.Create(path);
pb.SetCenterColor(MakeColor(255,0,0,255)); // 中心洋紅
num := 1;
pb.SetSurroundColors(@colors, num); // 環繞色 (單色:青)
g.FillEllipse(pb, 0, 0, 166, 88);
pb := TGPPathGradientBrush.Create(PGPPoint(@pts), 3); // 預設中心黑、環繞白
g.FillRectangle(pb, 0, 0, 200, 200);
pb.SetCenterPoint(MakePoint(120, 40)); // 偏移中心
pb.SetCenterColor(MakeColor(255, 255, 0, 0));
pb.SetGammaCorrection(True); // sRGB 空間線性插值
colors := [aclGreen, aclAqua, aclBlue];
pos := [0.0, 0.25, 1.0];
pb.SetInterpolationColors(@colors, @pos, 3);
colors[0..9] 交替指定紅/綠/藍/白...
pb.SetSurroundColors(@colors, 10);
g.FillRectangle(pb, MakeRect(0, 0, 180, 220)); // 矩形大於五邊形路徑
路徑漸層是複雜幾何體著色、光照模擬、資料視覺化熱力圖的利器。