首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi GDI+ 學習筆記 (11):PathGradientBrush 路徑漸層筆刷

     編輯:Delphi

從路徑幾何產生放射狀/不規則漸層:中心色、環繞色、中心點位移、Gamma 校正、多色插值、描繪區域擴展

TGPPathGradientBrush 依指定路徑 (或點陣列) 產生漸層:路徑內部為中心色,邊界為環繞色 (可多色)、中心點可偏移、支援 Gamma 校正、插值色彩/位置陣列。漸層範圍由路徑外接矩形決定,繪製區域可大於路徑 (外部延伸環繞色)。

1. 基本橢圓路徑漸層


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);

2. 直接用點陣列建立 (三角形)


pb := TGPPathGradientBrush.Create(PGPPoint(@pts), 3); // 預設中心黑、環繞白
g.FillRectangle(pb, 0, 0, 200, 200);

3. 設定中心點偏移 (非幾何中心)


pb.SetCenterPoint(MakePoint(120, 40)); // 偏移中心
pb.SetCenterColor(MakeColor(255, 255, 0, 0));

4. Gamma 校正


pb.SetGammaCorrection(True); // sRGB 空間線性插值

5. 多色環繞 + 位置插值


colors := [aclGreen, aclAqua, aclBlue];
pos := [0.0, 0.25, 1.0];
pb.SetInterpolationColors(@colors, @pos, 3);

6. 多邊形多色環繞 (10 邊形)


colors[0..9] 交替指定紅/綠/藍/白...
pb.SetSurroundColors(@colors, 10);

7. 漸層繪製區域大於路徑 (延伸效果)


g.FillRectangle(pb, MakeRect(0, 0, 180, 220)); // 矩形大於五邊形路徑

路徑漸層是複雜幾何體著色、光照模擬、資料視覺化熱力圖的利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved