Delphi 與 DirectX 之 DelphiX(14): TPictureCollectionItem.DrawRotate…

來源:互聯網
上載者:User
TPictureCollectionItem.DrawRotate(); 的同類函數還有:TPictureCollectionItem.DrawRotateAdd();TPictureCollectionItem.DrawRotateSub();TPictureCollectionItem.DrawRotateAlpha();TPictureCollectionItem.DrawRotateAddCol();TPictureCollectionItem.DrawRotateSubCol();TPictureCollectionItem.DrawRotateAlphaCol();

本例分別進行了示範, 運行:


代碼檔案:
unit Unit1;interfaceuses  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  endend

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.