极语言官方网站

路径转换

路径是与设备上下文关联的对象之一, (DC) 。

但是,与 (笔、画笔和字体) 属于任何新 DC 的默认对象不同,没有默认路径。

若要创建路径并将其选择到DC中,首先需要定义描述该路径的点。

通过调用 开启路径 函数、指定适当的绘图函数,然后通过调用 结束路径 函数来完成的。

(开启路径、绘图函数和 结束路径) 组合构成 路径括号。

绘图函数包括:画弧线、椭圆弧、画椭圆弧、画和弦、关闭图形、画椭圆、画线、移到、画饼、多点曲线、离散曲线、

多线曲线、画多边形、画折线、画折线图、叠折线、画方块、圆角矩形、绘制字符、写字到

当应用程序调用 结束路径 时,系统会选择指定 DC 的关联路径。如果之前已选择另一个路径进入 DC,

系统会删除该路径而不保存它。

系统选择 DC 的路径后,应用程序可以通过以下方式之一对路径进行操作:

使用当前笔绘制路径的轮廓。

使用当前画刷绘制路径的内部。

绘制轮廓并填充路径的内部。

修改路径 (将曲线转换为线段) 。

将路径转换为剪辑路径。

将路径转换为区域。

通过将路径中的每个曲线转换为一系列线段来平展路径。

检索构成路径的线条和曲线的坐标。

应用程序可以通过调用 勾画路径 函数来绘制路径的轮廓,它可以通过调用 填充路径 函数来填充路径的内部,

也可以通过调用 勾画填充 函数来勾勒和填充路径。

每当应用程序填充路径时,系统都使用 DC 的当前填充模式。

应用程序可以通过调用 填充模式 函数来检索此模式,也可以通过调用 模式填充 函数来设置新的填充模式。请参阅 区域

下图显示了由计算机辅助设计 (CAD) 应用程序创建的对象的横截面,这些路径同时具有轮廓和填充的路径。

显示对象的横断面视图的插图,其中不同填充图案指示了各种部分

路径是使用逻辑单元和当前转换定义的。 (如果已调用 空间转换 函数,则逻辑单元为世界单位;否则,逻辑单元为页单位。)

应用程序可以使用世界转换来缩放、旋转、剪切、平移和反射定义路径的线条和贝塞尔曲线。

如果笔是几何笔,应用程序还可以使用 空间转换 来勾勒出用于勾勒路径的笔的形状。

应用程序可以使用剪裁和路径来创建特殊的图形效果。 下图显示了用较大的 Arial 字体绘制的文本字符串。

显示白色背景上的黑色文本的插图

下图显示了选择文本作为剪辑路径并为中心位于字符串上方和左侧的圆绘制径向线条的结果。

插图显示相同的文本,但填充了线条而不是纯黑色

应用程序通过生成路径括号,然后调用 选择剪裁 函数来创建剪辑路径。

将剪辑路径选入 DC 后,输出仅显示在路径的边框内。

除了创建特殊图形效果外,剪辑路径在将图像另存为增强型图元文件的应用程序中也很有用。

通过使用剪辑路径,应用程序能够确保设备独立性,因为用于指定路径的单元是逻辑单元。

应用程序可以通过调用 转换区域 函数将路径转换为区域。

与 选择剪裁 一样, 转换区域 在创建特殊图形效果时很有用。

例如,没有允许应用程序偏移路径的函数;

但是,有一个函数使应用程序能够偏移区域 (区域偏移) 。

使用 转换区域,应用程序可以通过创建定义形状的路径、调用 转换区域 将路径转换为区域,

然后通过按顺序调用函数(如 填充区域、区域偏移 和 填充区域)来创建复杂形状动画效果。

应用程序可以通过调用 转换线段 函数来平展路径中的曲线。

对于将文本拟合到包含曲线的路径轮廓上的应用程序,此函数特别有用。

为了适应文本,应用程序必须执行以下步骤:

创建文本显示的路径。

调用 转换线段 函数可将路径中的曲线转换为线段。

调用 获取路径 函数以检索这些线段。

计算字符串中每行的长度和每个字符的宽度。

使用线宽和字符宽度数据沿曲线放置每个字符。

中文名称英文名称示例作用
丢弃路径AbortPath丢弃路径(设备)抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
开启路径BeginPath开启路径(设备)启动一个路径分支。在这个命令后执行的GDI绘图命令会自动成为路径的一部分。对线段的连接会结合到一起。
结束路径EndPath结束路径(设备)关闭路径括号,并将括号中定义的路径选择到指定的设备
关闭图形CloseFigure关闭图形(设备)关闭路径中的打开图形。
填充路径FillPath填充路径(设备)关闭当前路径中的任何打开的图形,并使用当前画笔和多边形填充模式填充路径的内部。
转换线段FlattenPath转换线段(设备)将一个路径中的所有曲线都转换成线段
获取路径GetPath获取路径(设备,点组,点类,数量)取得对当前路径进行定义的一系列曲线的控制点
斜率限制GetMiterLimit斜率限制(设备,@斜率)取得设备场景的斜率限制
限制斜率SetMiterLimit限制斜率(设备,斜率,旧)为指定设备的斜接连接长度设置限制。不需要获取旧斜率可以为0
勾画填充StrokeAndFillPath勾画填充(设备)关闭路径中所有打开的图形,使用当前笔描边路径的轮廓,并使用当前画笔填充其内部。
勾画路径StrokePath勾画路径(设备)使用当前笔呈现指定的路径。
重设路径WidenPath重设路径(设备)根据选定画笔的宽度,重新定义当前选定的路径。