打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
路径和区域
路径表示一系列相互连接的直线和曲线。
区域是由曲线定义的区间, 是输出设备显示的一部分。
1.1、在GDI+中使用路径
路劲的使用过程如下:
①:调用BeginPath函数开始路径定义
②:调用GDI绘图函数定义路径, 在32位window 的操作系统中GDI绘图函数有:AngleArc, Arc,ArcToChord,CloseFigure,Eillpse等。
③:调用EndPath函数结束路径定义。
④:使用路径对象, 完成路径定义后, 应用程序边可以利用有关的的GDI函数来使用路径,这些包括绘制路径轮廓StrokePath, 填充路径FillPath, 绘制轮廓并填充StrokeAndFillPath,把路径转换成区域PathToRegion, 把路径直线化FlattenPath, 提取路径数据GetPath, 加宽路径WidenPath, 设置剪裁路径SelectClipPath等

1.2、在GDI+中定义路径
GDI+中使用GraphicsPath类来表示路径,路径可以用一下3中方式构造:
.GraphicsPath(fillMode)
GraphicsPath(Point* points, BYTE* types, INT count, FillMode fillMode)
GraphicsPath(PointF* points, BYTE* types, INT count, FillMode fillMode)
参数说明:
fillMode:填充模式, 该参数为FillMode枚举列出的两个成员FillModeAltermate, FillModeWinding之一。
points:定义子路径的点
types:points数组成员的类型描述, 点类型有PathPointType枚举列出:
 
 
1.3、项路径中添加几何图形
路径轮廓的定义除了可以在GraphicsPath类的构造函数中通过定义端点坐标及类型显示之外, 还可以在路径建立完成之后, 通过项路径中添加几何图形或者线条的方式实现。
 
  1.4、开放图形和封闭图形
封闭图形:图形的起点和重点相同。
 
1.5、填充路径
DrawPath在填充路径的时候, 首先会判断该路径是不是封闭的, 如果没有封闭,该函数会对路径进行封闭。

1。6、添加子路径
GraphicsPath可以包含多个图形, 我们把每一个图形称之为子路径。如果在GraphicsPath对象中使用StartFigure或者CloseFigure, 在这两个函数之后对路径所添加的线条豆浆构成一个新的子路径。StartFigure和CloseFigure的区别在于:StartFigure是在不封闭当前图形的情况下添加新的子路径, CloseFigure是吧当前图形封闭后再添加新的子路径。两个函数的共同点是:都是在两个函数之间执行图形追加操作, 构成一个子路径。

1.7、获取子路径的信息
路径可以包含若干子路径, 子路径的数量取决于翔路径中追加图形的方式。GDI+类的GraphicsPathIterator能够从给定的路径中执行多种于子路径相关的操作。
 
 
 
 
1.8、访问路径的点信息
路径是由简单的几何图形构成,简单的几何体图形是由点构成, , 使用对一个路径的描述可以通过对点路径点的信息的处理来实现。GraphicsPath类的成员函数GetPathPoints, GetPathTypes提供了对定义路径的点的信息处理。

1.9、访问路径点的类型信息
 利用GetPathPoints, GetPathType可以分别获取点的坐标和类型。如果想要在程序同时处理端点坐标和端点类型的两个信息,可以使用GraphicsPath类的成员函数GetPathData,该函数会将路径的端点信息返回到一个PathData类中。PathData有3个成员变量count、point、Types,分别代表点数量、点数组、类型数组。

1.10、标记路径区间
GraphicsPathIterator类成员函数NextSubPath可以提取路径中子路径信息,, 一次只能抽取一个子路径。GraphicsPathIterator类的另一个函数NextMarker可以解决nextSubPath的不足, 利用SetMarker不但可以实现对子路径的呈批处理, 还可以处理任意路径区间。Setmarker通常用来成组的分割路径。使用nextMarker的前提是在对子路径追加时, 显示的调用了SetMarker函数进行区间标记。

1.11、修改路径的外观
 
 1.12、扭曲路径
 
 
 
 
 
1.13、拓宽路径
绘制路径的画笔都是单线的, 使用单线的宽度决定了画笔的宽度, 使用绘制出来的路径轮廓值是一个具有宽度的实现形状。使用比较宽的画笔绘制路径, 这样绘制出来的路径的轮廓将是粗线轮廓, 这种将路径轮廓变粗的的方法称之为拓宽路径。GraphicsPath对象可以使用widen函数来实现这一过程。widen函数的调用格式为:
 
 
2、在GDI+中使用区域
2.1、构造区域
 
 
 
 
 
 
2.1、计算区域
 
 
 
 
 
2.3、用矩形表示区域
 
 

2.4、击中测试区域
击中测试简单来说就是判断一个点是否位于指定的区域内。Region类的成员函数IsVisible提供了这样一个功能, 而且还进行了扩展:出了可以测试点是否位于区域中以外, 还可以测试一个矩形区间是否位于矩形的内部。
 
 







本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于Windows GDI 的几何线条处理
一些关于GDI+的文字——新增功能
Windows GDI和GDI+编程实例剖析(4)
beginpath路径
GDI+的API类(54个)
VC知识库文章 - GDI 编程基础(一)GDI Vs GDI
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服