TPictureCollectionItem.DrawRotate(); 的同类函数还有: TPictureCollectionItem.DrawRotateAdd(); TPictureCollectionItem.DrawRotateSub(); TPictureCollectionItem.DrawRotateAlpha(); TPictureCollectionItem.DrawRotateAddCol(); TPictureCollectionItem.DrawRotateSubCol(); TPictureCollectionItem.DrawRotateAlphaCol();
本例分别进行了演示, 运行效果图:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DXDraws, StdCtrls; type TForm1 = class(TForm) DXDraw1: TDXDraw; DXImageList1: TDXImageList; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} const Angle = 32; {在这里相当于 45° 角} clr = $777777; var PicItem: TPictureCollectionItem; procedure TForm1.FormCreate(Sender: TObject); const ImgPath1 = 'C:\Temp\DelphiX.bmp'; begin DXImageList1.DXDraw := DXDraw1; PicItem := TPictureCollectionItem(DXImageList1.Items.Add); PicItem.Picture.LoadFromFile(ImgPath1); Button1.Caption := 'DrawRotateAdd'; Button2.Caption := 'DrawRotateSub'; Button3.Caption := 'DrawRotateAlpha'; Button4.Caption := 'DrawRotateAddCol'; Button5.Caption := 'DrawRotateSubCol'; Button6.Caption := 'DrawRotateAlphaCol'; Button7.Caption := '原始效果'; end; procedure TForm1.Button1Click(Sender: TObject); begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateAdd(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle); DXDraw1.Flip; end; procedure TForm1.Button2Click(Sender: TObject); begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateSub(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle); DXDraw1.Flip; end; procedure TForm1.Button3Click(Sender: TObject); begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateAlpha(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle, 128); DXDraw1.Flip; end; procedure TForm1.Button4Click(Sender: TObject); begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateAddCol(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle, clYellow); DXDraw1.Flip; end; procedure TForm1.Button5Click(Sender: TObject); begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateSubCol(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle, clYellow); DXDraw1.Flip; end; procedure TForm1.Button6Click(Sender: TObject); begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateAlphaCol(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle, clYellow); DXDraw1.Flip; end; procedure TForm1.Button7Click(Sender: TObject); begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotate(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle); DXDraw1.Flip; end; end.
窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 226 ClientWidth = 356 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object DXDraw1: TDXDraw Left = 8 Top = 8 Width = 225 Height = 211 AutoInitialize = True AutoSize = True Color = clBlack Display.FixedBitCount = False Display.FixedRatio = True Display.FixedSize = True Options = [doAllowReboot, doWaitVBlank, doCenter, do3D, doDirectX7Mode, doHardware, doSelectDriver] SurfaceHeight = 211 SurfaceWidth = 225 TabOrder = 0 Traces = <> end object Button1: TButton Left = 239 Top = 8 Width = 112 Height = 25 Caption = 'Button1' TabOrder = 1 OnClick = Button1Click end object Button2: TButton Left = 239 Top = 39 Width = 112 Height = 25 Caption = 'Button2' TabOrder = 2 OnClick = Button2Click end object Button3: TButton Left = 239 Top = 70 Width = 112 Height = 25 Caption = 'Button3' TabOrder = 3 OnClick = Button3Click end object Button4: TButton Left = 239 Top = 101 Width = 112 Height = 25 Caption = 'Button4' TabOrder = 4 OnClick = Button4Click end object Button5: TButton Left = 239 Top = 132 Width = 112 Height = 25 Caption = 'Button5' TabOrder = 5 OnClick = Button5Click end object Button6: TButton Left = 239 Top = 163 Width = 112 Height = 25 Caption = 'Button6' TabOrder = 6 OnClick = Button6Click end object Button7: TButton Left = 239 Top = 194 Width = 112 Height = 25 Caption = 'Button7' TabOrder = 7 OnClick = Button7Click end object DXImageList1: TDXImageList Items.ColorTable = { 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000} Items = <> Left = 192 Top = 16 end end