文档章节

Direct2D (22) : 复合几何对象之 ID2D1TransformedGeometry

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 150
阅读 11
收藏 0
点赞 0
评论 0

复合几何对象包括 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;


效果图:



本文转载自:http://www.cnblogs.com/del/archive/2011/04/06/2006833.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
Direct2D教程(十)绘制文本

概述 在Direct2D中,文本的绘制是通过DirectWrite来实现的,DirectWrite实际上已经是一个独立的DirectX组件了。关于DirectWrite,我摘录了MSDN的一段文字。 DirectWrite介绍 当今的应用程序应...

吞吞吐吐的 ⋅ 2017/10/17 ⋅ 0

杂谈SharpDx中的WIC组件——我们需要WIC的图片编码功能么?

在前文 SharpDX之Direct2D教程II——加载位图文件和保存位图文件 中,发现在VB2010中不能很好的运用SharpDx中的WIC组件进行图片的编码工作。可能是我的设置问题,也可能是SharpDx对VB2010支持...

万仓一黍 ⋅ 2013/10/08 ⋅ 0

Direct2D教程(十一)几何变换

什么是几何变换(Transform) 在图形学中,主要有三种几何变换,分别是平移(Translate),旋转(Rotation)和缩放(Scaling)。在D2D中,这三种变换都有实现,而且还有一种不太常见的变换,...

吞吞吐吐的 ⋅ 2017/09/12 ⋅ 0

怎么用几何画板画三星状图形

大家都知道几何画板的功能非常的强大,很多的复杂图形都可以用几何画板来绘制。对于一些几何画板初学者来说,肯定知道如何使用几何画板画圆。相对圆而言,画弧比较复杂,特别是构造由几个圆相...

学术研究软件 ⋅ 2016/07/05 ⋅ 0

PostgreSQL入门篇学习笔记(四)

布尔型:boolean 数值型:smallint ,int,bigint,numeric,real,double precision 字符型:varchar(n),char(n),text 二进制:bytea 位串类型:bit(n),bit varying(n) 日期和时间:date,time...

落叶刀 ⋅ 2015/11/21 ⋅ 0

Direct2D教程(十二)图层

什么是Layers? Layer,中文译成图层,在Direct2D中可以用来完成一些特殊效果,使用Layer的时候,先将Layer Push到render target,然后进行绘制,此时是直接绘制在Layer上的,绘制完毕后,将...

吞吞吐吐的 ⋅ 2017/10/26 ⋅ 0

ArcGIS for iOS 开发系列(8) – 基础篇-空间要素-符号渲染和属性信息

2 符号渲染 几何形状是地图的骨架,最后成图还需要制图,制图是另一个庞大的话题,这里不做展开,直接来介绍符号和渲染。符号面向的是空间要素,定义了点、线、面要素的颜色、透明度、边框大...

长平狐 ⋅ 2012/11/28 ⋅ 0

PostgreSQL+PostGIS 的使用

阅读目录 一、PostGIS中的几何类型 二、 PostGIS中空间信息处理的实现 三、 PostGIS中的常用函数 四、 PostGIS示例 回到顶部 一、PostGIS中的几何类型 PostGIS支持所有OGC规范的“Simple Fe...

技术mix呢 ⋅ 2017/11/07 ⋅ 0

【优达学城测评】MongoDB(2)--GeoJSON

1.2dsphere球面索引,使用WGS84 地心坐标系.支持两种类型的数据格式:(1)GeoJSON对象,(2)普通坐标对象(Legacy Coordinate Pairs)(在球面索引使用普通坐标对象时,系统会自动转化为Geo...

Betty__ ⋅ 2016/10/15 ⋅ 0

关于Direct3D11里汉字显示的一些思考

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/8147234 作者:毛星云 邮箱: happylifemxy@163.com 这篇文章里,浅墨希望与大家一起...

长平狐 ⋅ 2012/11/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java软件工程师简历中项目经验怎么写?

作者:暗灭 链接:https://www.zhihu.com/question/20695310/answer/180691302 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 直接给你贴个我自己的简历...

颖伙虫 ⋅ 26分钟前 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部