博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Direct2D (26) : 获取几何图形的边界
阅读量:7265 次
发布时间:2019-06-29

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

  hot3.png

{相关方法}ID2D1Geometry.GetBounds();        //获取边界矩形ID2D1Geometry.GetWidenedBounds(); //获取包含画笔区域的边界矩形

测试代码:

uses Direct2D, D2D1;procedure TForm1.FormPaint(Sender: TObject);var  cvs: TDirect2DCanvas;  iGeometry: ID2D1EllipseGeometry;  R1,R2: TD2DRectF;  iBrush: ID2D1SolidColorBrush;begin  {几何图形}  D2DFactory.CreateEllipseGeometry(D2D1Ellipse(D2D1PointF(ClientWidth/2, ClientHeight/2), ClientWidth/4, ClientHeight/4), iGeometry);  {分别获取两种类型的边界}  iGeometry.GetBounds(TD2DMatrix3x2F.Identity, R1);  iGeometry.GetWidenedBounds(25, nil, TD2DMatrix3x2F.Identity, 0, R2);  cvs := TDirect2DCanvas.Create(Canvas, ClientRect);  cvs.BeginDraw;  cvs.RenderTarget.Clear(D2D1ColorF(clWhite));  {绘制原图形}  cvs.RenderTarget.CreateSolidColorBrush(D2D1ColorF(clRed, 0.75), nil, iBrush);  cvs.RenderTarget.FillGeometry(iGeometry, iBrush);  {绘制边界}  iBrush.SetOpacity(1);  cvs.RenderTarget.DrawRectangle(R1, iBrush);  cvs.RenderTarget.DrawRectangle(R2, iBrush);  cvs.EndDraw;  cvs.Free;end;procedure TForm1.FormResize(Sender: TObject);begin  Repaint;end;

效果图:
26153407_9aVs.png

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

你可能感兴趣的文章
Exchange server 2010单服务器恢复
查看>>
nginx 安装
查看>>
转:bash下. : () {} [] [[]] (())的解释
查看>>
基于CentOS 6.8平台的Tomcat+MySQL+JDK环境搭建
查看>>
PAM认证模块使用实例
查看>>
客户端获取本地ip地址
查看>>
2013年终总结
查看>>
python-判断2个IP地址是否属于同一网段
查看>>
我的友情链接
查看>>
10.26日作业
查看>>
edx 没有加载静态资源
查看>>
NMath Premium .net平台数值计算控件
查看>>
dynamically creating a set of SQLAlchemy table
查看>>
关于流程图设计,你需要Get的几点必备知识
查看>>
马哥笔记第九天raid、LVM、压缩解压及归档
查看>>
热爱成就辉煌:20个月赚130亿   
查看>>
RHCE基础知识:轻松了解Linux入门命令
查看>>
在Linux下如何使用软盘、光盘以及DOS等非Linux分区
查看>>
二.计算机系统之程序的机器级表示
查看>>
Ubuntu下进行网络抓包
查看>>