再學GDI+[55]: 路徑

來源:互聯網
上載者:User

通過路徑的 Flatten 方法可以把路徑中的曲線拉直, 拉直到什麼程度是由它的第二個參數( 預設0.25)決定的; 它的第一個參數又是一個矩陣變換, 也就是說 Flatten 可以同時進行矩陣 變換, 本例沒有測試它, 其詳情參見:

http://www.cnblogs.com/del/archive/2008/06/20/1226293.html

本例效果圖:

代碼檔案:unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ComCtrls;
type
 TForm1 = class(TForm)
  TrackBar1: TTrackBar;
  procedure FormPaint(Sender: TObject);
  procedure FormCreate(Sender: TObject);
  procedure TrackBar1Change(Sender: TObject);
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
uses GDIPOBJ, GDIPAPI;
procedure TForm1.FormCreate(Sender: TObject);
begin
 TrackBar1.Height := 23;
 TrackBar1.ShowSelRange := False;
 TrackBar1.Min := -5000;
 TrackBar1.Max := 5000;
 TrackBar1.Position := 25;
 TrackBar1.PageSize := 5;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
 g: TGPGraphics;
 p: TGPPen;
 path: TGPGraphicsPath;
 f: Single;
begin
 g := TGPGraphics.Create(Canvas.Handle);
 p := TGPPen.Create(aclBlue, 2);
 path := TGPGraphicsPath.Create;
 path.AddEllipse(20, 20, ClientWidth-40, ClientHeight- 80);
 f := TrackBar1.Position / 100;
 path.Flatten(nil, f);
 Text := Format('%f', [f]);
 g.DrawPath(p, path);
 path.Free;
 p.Free;
 g.Free;
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 Repaint;
end;
end.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.