文档章节

GDI+ 学习记录(19): 路径 - Path

涂孟超
 涂孟超
发布于 2014/09/26 15:30
字数 272
阅读 15
收藏 0
//绘制与填充路径
var
  g: TGPGraphics;
  path: TGPGraphicsPath;
  p: TGPPen;
  sb: TGPSolidBrush;
begin
  g := TGPGraphics.Create(Canvas.Handle);
  p := TGPPen.Create(MakeColor(128,255,0,0),4);
  sb := TGPSolidBrush.Create(MakeColor(128,255,255,0));
  path := TGPGraphicsPath.Create;

  path.StartFigure;
  path.AddLine(MakePoint(11,11), MakePoint(222,111));
  path.AddBezier(MakePoint(11,11), MakePoint(33,111), MakePoint(66,6),MakePoint(111,111));
  path.CloseFigure;

  g.DrawPath(p, path);
  g.FillPath(sb, path);

  p.Free;
  sb.Free;
  path.Free;
  g.Free;
end;

 
 
 
 
 

 

 

  
//路径中的拐点结合 var g: TGPGraphics; p: TGPPen; path: TGPGraphicsPath; p1,p2,p3: TGPPoint; begin g := TGPGraphics.Create(Canvas.Handle); p:= TGPPen.Create(MakeColor(255, 0, 0, 255),8); path:= TGPGraphicsPath.Create; p1.X := 50; p1.Y := 200; p2.X := 100; p2.Y := 200; p3.X := 100; p3.Y := 250; path.AddLine(p1, p2); path.AddLine(p2, p3); p.SetLineJoin(LineJoinBevel); {设置结合样式} g.DrawPath(p, path); path.Free; p.Free; g.Free; end;
路径中的拐点结合样式:

Delphi 微软 说明
LineJoinBevel Bevel 指定成斜角的联接。这将产生一个斜角。
LineJoinMiter Miter 指定斜联接。这将产生一个锐角或切除角,具体取决于斜联接的长度是否超过斜联接限制。
LineJoinMiterClipped  MiterClipped  指定斜联接。这将产生一个锐角或斜角,具体取决于斜联接的长度是否超过斜联接限制。
LineJoinRound Round 指定圆形联接。这将在两条线之间产生平滑的圆弧。


本文转载自:http://www.cnblogs.com/del/archive/2007/12/27/1017377.html

涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
OSG3.2+Qt5.2.1+VS2012+OSGEarth 2.5编译问题记录

问题1:CMake Error at D:/Qt/Qt5.2.1/5.2.1/msvc201264opengl/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:16 (message): Failed to find "glu32" in "" with CMAKECXXLIBRARY_ARCHITECTURE ......

天蚕宝衣
2016/11/21
84
0
C# WinForm开发系列 - GDI+

UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序。UI编程体现在两个方...

长征2号
2017/11/14
0
0
Python学习记录day6

----- title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 Python学习记录day6 [TOC] 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 以字符串...

ygqygq2
2016/12/05
13
0
《VC++技术内幕》读后感

看的是第四版的电子书,毕竟又厚又贵,买书不划算,而且这版翻译的也很好,记录下我的一点读书心得。 第一章:对windows的消息处理模式,GDI,DLL等有个基本了解,价值不大,算入门级别吧。 ...

嗯哼9925
2017/12/27
0
0
Android自定义View之Canvas的Path方法和Paint的DrawText的方法

本篇文章记录了一些觉得还是很有意思的一些方法,文章底部有自定义View的干货推荐哦! Canvas画路径 初始化画笔工具 画线(三角形) 矩形路径 jx.png 好像并没有什么区别-_-|| 继续,依据路径写...

深情不及酒伴
2017/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

读书笔记:深入理解ES6 (五)

第五章 解构:使数据访问更便捷 第1节 为什么使用解构功能?   在ES5中,开发者们从对象、数组中获取特定数据并赋值给变量,编写了很多看起来同质化的代码。例如: 1 let options = {2 ...

张森ZS
26分钟前
21
0
CentOS7 yum方式安装MySQL5.7

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 1 下载并安装MySQL官方的 Yum Repository [root@localho...

roockee
35分钟前
15
0
Allegro三种自定义设置快捷键的方法

Allegro自定义设置快捷键的三种方法: 1、在Allegro PCB editor 命令窗口直接定义 2、通过修改用户变量env文件来设置快捷键 3、定义笔画为快捷键 1、在Allegro PCB editor 命令窗口直接定义 ...

demyar
39分钟前
16
0
如何做一张能让人眼前一亮的大屏?

作为在职场驰骋的社会人,提到数据可视化大家应该都不陌生了。数据可视化的作用也不用我多说,主要是利用图形化手段,更清晰直观地将数据展示。多层次、交互式的可视化分析能够方便决策者理解...

朕想上头条
40分钟前
9
0
TL138/1808/6748-EthEVM开发板硬件CPU、FLASH、RAM

TL138/1808/6748-EthEVM是广州创龙基于SOM-TL138/1808/6748核心板开发的一款开发板,具有三个网络接口。由于SOM-TL138/1808/6748核心板管脚兼容,所以此三个核心板共用同一个底板。开发板采用...

Tronlong创龙
44分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部