uses Direct2D, D2D1;procedure TForm1.FormPaint(Sender: TObject);
varcvs: TDirect2DCanvas;iGeometry: ID2D1Geometry;iPathGeometry: ID2D1PathGeometry;iGeometrySink: ID2D1GeometrySink;
begin{建立一个几何对象 iGeometry}D2DFactory.CreateEllipseGeometry(D2D1Ellipse(D2D1PointF(ClientWidth/2, ClientHeight/2), ClientWidth/4, ClientHeight/4),ID2D1EllipseGeometry(iGeometry));cvs := TDirect2DCanvas.Create(Canvas, ClientRect);cvs.BeginDraw;{绘制 iGeometry}cvs.Pen.Color := clYellow;cvs.Pen.Width := 25;cvs.DrawGeometry(iGeometry);{创建 iPathGeometry,并把 iGeometry 的线条所占用的区域转换成新的路径到 iPathGeometry}D2DFactory.CreatePathGeometry(iPathGeometry);iPathGeometry.Open(iGeometrySink);iGeometry.Widen(25, nil, TD2DMatrix3x2F.Identity, 0, iGeometrySink); //参数4是曲直容差,效果图中包含把它设为 9 的演示iGeometrySink.Close;{绘制 iPathGeometry}cvs.Pen.Color := clRed;cvs.Pen.Width := 1;cvs.DrawGeometry(iPathGeometry);cvs.EndDraw;cvs.Free;
end;procedure TForm1.FormResize(Sender: TObject);
beginRepaint;
end;


效果图:


转载于:https://www.cnblogs.com/del/archive/2011/04/07/2007676.html

Direct2D (25) : 将画笔线条所占用的区域转换为路径 - ID2D1Geometry.Widen()相关推荐

  1. 20X16 FCPX插件发光画笔线条描边图形绘制工具中文版FCPXBrushGlow

    20X16 FCPX插件发光画笔线条描边图形绘制工具中文版FCPXBrushGlow [插件介绍] 这个插件是时下非常流行的发光画笔图形效果动画,通过使用插件可以直接用鼠标在画面上绘制发光线条图案等: ...

  2. 【重点】剑指offer——面试题25:二叉树中和为某一值的路径

    剑指offer--面试题25:二叉树中和为某一值的路径 参考网址:https://www.nowcoder.com/profile/5488508/codeBookDetail?submissionI ...

  3. python 画线条进行到指定区域更改颜色,使用Colormaps在matplotlib中设置线条的颜色...

    线条样式,标记和定性颜色的组合,来自matplotlib: import itertools import matplotlib as mpl import matplotlib.pyplot as ...

  4. 【CCCC】L2-001 紧急救援 (25分),,Dijkstra标准模板(多路径,最大点权和路径打印)

    problem L2-001 紧急救援 (25分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两 ...

  5. echarts折线图取消折线上圆点,设置线条为虚线,设置第一个点在y轴上,拐点是曲线,线条下加填充区域

    series--->symbol: "none"   取消折线上的圆点 设置线条为虚线 ​ series: [{itemStyle:{normal:{lineStyle:{w ...

  6. 剑指offer 25: 二叉树中和为某一值的路径

    题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...

  7. 记canvas画笔笔迹的多次优化过程

    我们的项目是面向学校老师的教学软件,所以肯定少不了互动白板的功能,而这个里面的画笔功能是由我来开发的,下面介绍这个过程中遇到的问题以及解决方法. 首先给大家明确下由于软件中的画布可以自由移动,会超出屏 ...

  8. 使用渐变画笔填充形状

    可借助渐变画笔用渐变的颜色填充形状.例如,可借助水平渐变画笔,从形状的左边缘到右边缘用逐渐变化的颜色来填充形状.设想这样一个矩形:它的左边缘为黑色(红色.绿色和蓝色分量均为 0):右边为红色(这三个分 ...

  9. python画笔初始位置_turtle绘画-移动落笔点(改变初始原点)

    在用turtle绘画时,画笔的第一笔落笔点默认是在画布中心,画笔朝东(向右),但是有时需要绘制一些不对称的图,画笔落在画布中心会使结果偏离中心或画出画布.所以需要移动画笔的初始落笔点. 这里有两个方法 ...

最新文章

  1. Serverless 时代下大规模微服务应用运维的最佳实践
  2. vuejs linux windows,vue.js环境在window和linux安装
  3. 转换ArrayList String 到String []数组[重复]
  4. Lazy FP状态还原漏洞公布,大多数Intel的酷睿CPU受其影响
  5. 你真的很熟分布式和事务吗?
  6. 【总结】只需5步,给所有想入行人工智能/深度学习的新手们准备的资料
  7. ubuntu中mysql怎么退出命令_ubuntu的Linux下安装MySQL
  8. C++primer plus第六版课后编程题答案8.6
  9. C# WinForm开发系列
  10. 文件下载触发的DDE注入
  11. 3461. 在哈尔滨的寒风中(找规律)
  12. 解决方案(.sln)文件
  13. 通用能力-智力题专项练习(2)
  14. 微信正式支持注册小号,但不是谁都可以
  15. 基于JSP的班级聚会网站
  16. 玩转python(一)——微信远程控制电脑
  17. Eclipse单独设置注释字体加粗
  18. 美国〈国家地理〉镜头中的极致之地
  19. 华为 java 校招经验_华为校招消费者管培生三面面试经历
  20. android浏览器插件开发,Android浏览器插件开发.docx

热门文章

  1. 算法:螺旋矩阵 ||
  2. 小米面试题:合并二叉树
  3. 汇编语言--算术运算指令
  4. Linux各版本完整发展图
  5. 4.STM32中对USART1_Config()函数的理解(自定义)
  6. 前端三十二:超链接(a标签)
  7. 剑指offer八:跳台阶
  8. 开发人员需知的Web缓存知识(转)
  9. vue.js环境安装
  10. Android 消息推送