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

GDI+ 直線繪製基礎:DrawLine 四種參數重載詳解

     編輯:Delphi

DrawLine 提供四種參數重載,支援整數/浮點座標與點結構體傳遞,是 GDI+ 最基礎的繪圖原語。理解重載差異有助於選擇最適合場景的調用方式。

四種重載形式

g.DrawLine(p, x1, y1, x2, y2: Integer);        { 整數座標 }
g.DrawLine(p, pt1, pt2: TGPPoint);             { 整數點結構體 }
g.DrawLine(p, x1, y1, x2, y2: Single);         { 浮點座標 }
g.DrawLine(p, pt1, pt2: TGPPointF);            { 浮點點結構體 }

程式碼實作

同一畫筆繪製四條線,分別展示四種重載:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses GDIPOBJ, GDIPAPI;

procedure TForm1.FormPaint(Sender: TObject);
var
  g: TGPGraphics;
  p: TGPPen;
begin
  g := TGPGraphics.Create(Canvas.Handle);
  p := TGPPen.Create(MakeColor(255, 0, 0), 2);
  g.Clear(MakeColor(255, 255, 255));
  g.DrawLine(p, 20, 40, 200, 40);                    { 整數座標 }
  g.DrawLine(p, MakePoint(20, 60), MakePoint(200, 60)); { 整數點 }
  g.DrawLine(p, 20.9, 80.0, 200.9, 80.0);            { 浮點座標 }
  g.DrawLine(p, MakePoint(20.9, 100.0), MakePoint(200.9, 100.0)); { 浮點點 }
  g.Free;
  p.Free;
end;

end.

執行效果

DrawLine 直線示範

重載選擇指南

場景推薦重載理由
固定座標常數整數座標代碼簡潔,無轉換開銷
變數座標計算浮點座標避免整數截斷誤差
點陣列操作點結構體語義清晰,便於陣列處理
高 DPI / 縮放浮點點結構體亞像素精度,配合 Matrix 變換

MakePoint / MakePointF 輔助函數可簡化結構體構建,建議統一使用。

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