再学 GDI+[33]: TGPPen - 画笔的几何变换 - SetTransform
本例效果图:
代码文件:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ComCtrls, StdCtrls, ExtCtrls;typeTForm1 = class(TForm)Panel1: TPanel;Button1: TButton;TrackBar1: TTrackBar;TrackBar2: TTrackBar;TrackBar3: TTrackBar;TrackBar4: TTrackBar;procedure FormCreate(Sender: TObject);procedure FormPaint(Sender: TObject);procedure TrackBar1Change(Sender: TObject);procedure TrackBar2Change(Sender: TObject);procedure TrackBar3Change(Sender: TObject);procedure TrackBar4Change(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses GDIPOBJ, GDIPAPI;procedure TForm1.FormCreate(Sender: TObject); constn = 40; beginTrackBar1.Min := -n;TrackBar1.Max := n;TrackBar2.Min := -n;TrackBar2.Max := n;TrackBar3.Min := -n;TrackBar3.Max := n;TrackBar4.Min := -n;TrackBar4.Max := n;TrackBar1.Position := 10;TrackBar2.Position := 0;TrackBar3.Position := 0;TrackBar4.Position := 10;Button1.OnClick := FormCreate; end;procedure TForm1.FormPaint(Sender: TObject); varg: TGPGraphics;b: TGPBrush;p: TGPPen;matrix: TGPMatrix;m11, m12, m21, m22: Single; beging := TGPGraphics.Create(Canvas.Handle);b := TGPHatchBrush.Create(HatchStyleLargeGrid, aclForestGreen);p := TGPPen.Create(b, 16);m11 := TrackBar1.Position / 10;m12 := TrackBar2.Position / 10;m21 := TrackBar3.Position / 10;m22 := TrackBar4.Position / 10;matrix := TGPMatrix.Create(m11, m12, m21, m22, 0, 0);p.SetTransform(matrix);p.SetStartCap(LineCapRound);p.SetEndCap(LineCapRound);g.DrawLine(p, 30, 30, ClientWidth - Panel1.Width - 30, ClientHeight - 30);matrix.Free;b.Free;p.Free;g.Free; end;procedure TForm1.TrackBar1Change(Sender: TObject); beginRepaint; end;procedure TForm1.TrackBar2Change(Sender: TObject); beginRepaint; end;procedure TForm1.TrackBar3Change(Sender: TObject); beginRepaint; end;procedure TForm1.TrackBar4Change(Sender: TObject); beginRepaint; end;end.
窗体文件:
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 184ClientWidth = 327Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalsePosition = poDesktopCenterOnCreate = FormCreateOnPaint = FormPaintPixelsPerInch = 96TextHeight = 13object Panel1: TPanelLeft = 228Top = 0Width = 99Height = 184Align = alRightTabOrder = 0ExplicitLeft = 225ExplicitHeight = 170object Button1: TButtonLeft = 14Top = 8Width = 75Height = 25Caption = #21021#22987#21270TabOrder = 0endobject TrackBar1: TTrackBarLeft = 0Top = 39Width = 100Height = 20ShowSelRange = FalseTabOrder = 1OnChange = TrackBar1Changeendobject TrackBar2: TTrackBarLeft = 0Top = 72Width = 100Height = 20ShowSelRange = FalseTabOrder = 2OnChange = TrackBar2Changeendobject TrackBar3: TTrackBarLeft = 0Top = 106Width = 100Height = 20ShowSelRange = FalseTabOrder = 3OnChange = TrackBar3Changeendobject TrackBar4: TTrackBarLeft = 0Top = 140Width = 100Height = 20ShowSelRange = FalseTabOrder = 4OnChange = TrackBar4Changeendend end
再学 GDI+[33]: TGPPen - 画笔的几何变换 - SetTransform相关推荐
- 再学 GDI+[25]: TGPPen - 宽度、颜色与线帽
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 再学 GDI+[36]: TGPPen - SetLineCap
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 再学 GDI+[57]: 路径 - Widen
为什么80%的码农都做不了架构师?>>> 路径的 Widen 方法可以把路径中的线, 根据指定画笔的宽度与样式, 转换为一个范围(有点类似区域); 但转换后再描绘路径就只能使用 ...
- 再学 GDI+[56]: 路径 - Warp
为什么80%的码农都做不了架构师?>>> 通过路径的 Warp 方法可以让路径在一个范围内(四个点决定的范围)变换; 第一个参数可以是 3 个点或 4 个点的数组, 如果是 3 ...
- 再学 GDI+[11]: DrawCurve - 绘制曲线
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 再学 GDI+[7]: DrawLines - 绘制一组直线
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 再学 GDI+[81]: TGPImage(1) - 显示图像
已知 GDI+ 可以支持的图像格式: BMP.JPEG.GIF.TIFF.PNG.ICO.WMF.EMF TGPGraphics.DrawImage 函数有太多重载了, 一起列在这吧: functio ...
- 再学 GDI+[83]: TGPImage(3) - 平行四边形变换
为什么80%的码农都做不了架构师?>>> 本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, V ...
- 再学 GDI+[60]: TGPGraphics.SetSmoothingMode - 绘图质量
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
最新文章
- html中hover有静止的命令,我可以通过JavaScript禁用CSS:hover效果吗?
- 步步为营 .NET 代码重构学习笔记 十一
- python基本使用-python基本用法
- 公共无线网络多陷阱 ***称15分钟盗银行账号密码
- linux c 多文件编译,Linuxc - 多c文件程序编译执行
- 现在进行时和一般现在时的将来时态_39
- 第12章[12.3] Ext JSGrid中的超链接列及其功能实现
- 为什么JS中0.1+0.2 != 0.3
- springMVC使用拦截器针对控制器方法做预处理、后处理、资源清理
- [myeclipse] 官方中文网站
- C++ 0x/11学习笔记
- 杭州电子科技大学 计算机专硕复试分数线,2020杭州电子科技大学考研复试分数线已公布...
- Java swing简易浏览器(其二)前进后退与收藏夹实现
- 【C语言学习】C语言初探
- mysql explain 的using where 到底是什么意思?
- SAXReader简单实例分析
- Python之建模数值逼近篇--一维插值
- 关于 imtra-mart 的 新研究
- 操作系统——显示器的驱动
- 腾讯为何急于收购“弃子”搜狗 ?