博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Direct2D (22) : 复合几何对象之 ID2D1TransformedGeometry
阅读量:7033 次
发布时间:2019-06-28

本文共 1290 字,大约阅读时间需要 4 分钟。

  hot3.png

复合几何对象包括 ID2D1GeometryGroup 和 ID2D1TransformedGeometry,它们都继承自 ID2D1Geometry。
ID2D1TransformedGeometry 只是包含了 2D 变换的 ID2D1Geometry。

uses Direct2D, D2D1;procedure TForm1.FormPaint(Sender: TObject);var  cvs: TDirect2DCanvas;  iTransformedGeometry: ID2D1TransformedGeometry;  iRectangleGeometry: ID2D1RectangleGeometry;  iGeometry: ID2D1Geometry;  R: TRect;begin  {建立一个矩形的 ID2D1Geometry}  R := Bounds((ClientWidth-100) div 2, (ClientHeight-100) div 2, 100, 100);  D2DFactory.CreateRectangleGeometry(R, iRectangleGeometry);  {建立 ID2D1TransformedGeometry}  D2DFactory.CreateTransformedGeometry(    iRectangleGeometry,    TD2DMatrix3x2F.Rotation(45, ClientWidth/2, ClientHeight/2),    iTransformedGeometry  );  cvs := TDirect2DCanvas.Create(Canvas, ClientRect);  cvs.BeginDraw;  {绘制原始矩形}  cvs.Pen.Color := clGreen;  cvs.Pen.Width := 11;  cvs.DrawGeometry(iRectangleGeometry);  {绘制 ID2D1TransformedGeometry}  cvs.Brush.Color := clGreen;  cvs.FillGeometry(iTransformedGeometry);  {绘制从 ID2D1TransformedGeometry 再次获取的 iGeometry}  cvs.Pen.Color := clWhite;  cvs.Pen.Width := 1;  iTransformedGeometry.GetSourceGeometry(iGeometry);  cvs.DrawGeometry(iGeometry);  cvs.EndDraw;  cvs.Free;end;procedure TForm1.FormResize(Sender: TObject);begin  Repaint;end;

效果图:
26153529_rNkY.png

转载于:https://my.oschina.net/hermer/blog/320131

你可能感兴趣的文章
hidesBottomBarWhenPushed 设置为NO的问题
查看>>
cisco常用命令详解
查看>>
谁在追踪谁?
查看>>
HTTP请求返回状态码详解
查看>>
句柄类
查看>>
GitLab
查看>>
【常用配置】Spring框架web.xml通用配置
查看>>
[leetcode 240]Search a 2D Matrix II
查看>>
域名指的是这一级目录
查看>>
[Angular] Creating an Observable Store with Rx
查看>>
[转]Porting to Oracle with Entity Framework NLog
查看>>
chmod更改文件的权限
查看>>
oracle 10g/11g RAC 启停归档模式
查看>>
poj3461 Oulipo
查看>>
OAuth2.0学习(1-12)开源的OAuth2.0项目和比较
查看>>
Gitlab,这也就O了???
查看>>
2014 百度之星 1003 题解 Xor Sum
查看>>
Linux中在主机上实现对备机上文件夹及文件的操作的C代码实现
查看>>
iOS 块的简单理解
查看>>
idea中如何配置git以及在idea中初始化git
查看>>