TDIB.DoTwist 能讓位圖產生漩渦狀的扭曲變形,彷彿畫面被一股無形力量從中心向外旋轉拉伸。這在遊戲魔法特效、場景轉場、甚至趣味相框應用中都很常見。本文說明其參數意義與實作範例。
procedure DoTwist(Angle: Integer):參數 Angle 代表扭曲角度(單位通常為度或內部角度單位)。數值越大,中心旋轉幅度越大,邊緣拉伸變形越明顯。正值為順時針,負值為逆時針。範例中使用 128 可產生明顯的漩渦效果。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DIB, StdCtrls;
type
TForm1 = class(TForm)
DXPaintBox1: TDXPaintBox;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const
ImgPath1 = 'C:\Temp\DX.jpg';
begin
DXPaintBox1.DIB.LoadFromFile(ImgPath1);
DXPaintBox1.Width := DXPaintBox1.DIB.Width;
DXPaintBox1.Height := DXPaintBox1.DIB.Height;
DXPaintBox1.Repaint;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// 套用扭曲效果,角度參數 128
DXPaintBox1.DIB.DoTwist(128);
DXPaintBox1.Repaint;
end;
end.
TDIB.DoTwist 讓 DelphiX 開發者能輕鬆加入極具動感的幾何變形效果,豐富視覺表現層次。