极语言官方网站

形状填充

许多类型的应用程序使用线条和曲线在光栅设备上绘制图形输出。

计算机辅助设计 (CAD) 和绘图应用程序使用线条和曲线来勾勒对象、指定对象的中心、对象的尺寸等。

电子表格应用程序使用线条和曲线绘制网格、图表和图形。

Word处理应用程序使用线条在文本页上创建规则和边框。

线条是光栅显示器上一组突出显示的像素 (或打印页上的一组点,) 由两个点标识:起点和终点。

位于起点的像素始终包含在行中,并且始终排除位于终点的像素。

正则曲线是光栅显示器上的一组突出显示像素, (或打印页上的点) ,用于定义圆锥部分的外围 (或外围) 的一部分。

不规则曲线是一组像素,用于定义不适合圆锥部分的外围的曲线。

终点从曲线中排除,就像从线条中排除一样。

当应用程序调用其中一个曲线绘制函数时,GDI 会将曲线分解成许多极小的离散线段。

确定每个线段 (起点和终点) 的终结点后,GDI 通过应用其 DDA 来确定 (或) 点定义每条线的像素。

应用程序可以通过调用 椭圆弧 函数来绘制椭圆或椭圆的一部分。此函数在称为边框的不可见矩形的外围内绘制曲线。

椭圆的大小由两个不可见的径向指定,从矩形的中心延伸到矩形的两侧。

下图显示了使用 椭圆弧 函数绘制的椭圆 (一部分的 弧) 。

显示代表全圆四分之三的弧形图

调用 椭圆弧 函数时,应用程序指定边框和径向的坐标。

上图显示了使用实线绘制实际弧线时,带有虚线的矩形和径向。

除了绘制椭圆或部分椭圆外,应用程序还可以绘制称为贝塞尔曲线的不规则曲线,其曲率由 p1、p2、p3 和 p4 四个控制点 定义。

控制点 p1 和 p4 定义曲线的起点和终点,控制点 p2 和 p3 通过标记曲线反转方向的点来定义曲线的形状,如下图所示。

显示两条贝塞尔曲线的插图,每个曲线在起点和终点之间,每个曲线都有两个控制点

应用程序可以通过调用 多点曲线 函数来绘制不规则曲线,并提供相应的控制点。

应用程序将填充的形状用于各种任务。 例如,电子表格应用程序使用填充形状来构造图表和图形,

而绘图和绘画应用程序使用填充的形状允许用户绘制图形和插图。

椭圆是由两个固定点 (f1 和 f2 ) 定义的闭合曲线,以便从曲线上任意点到两个固定点) (d1 +d2 的距离之和是恒定的。

下图显示了使用 画椭圆 函数绘制的椭圆。

显示一个椭圆形、两个固定点、两个距离和一个边框的插图

调用 画椭圆 时,应用程序提供椭圆边框的左上角和右下角的坐标。

边框是完全围绕椭圆的最小矩形。 当系统绘制椭圆时,如果未设置世界转换,它将排除右侧和下侧。

因此,对于任何以 x 单位宽乘 y 单位高的任何矩形,关联的椭圆度量 x1 单位宽乘 y1 单位高。

如果应用程序设置了世界转换,则系统将包括右侧和下侧。

和弦是由椭圆和称为正割线段的交集限定的区域。

也就是弓的圆弧和弓弦组成的弓形图案。下图显示了使用和弦函数绘制的 和弦 。

椭圆图,显示两个径向、一个正割和一个和弦

调用 画和弦 时,应用程序提供椭圆边框的左上角和右下角的坐标,以及定义两个径向的两个点的坐标。

径向是从椭圆边框的中心到椭圆上的点绘制的线。

当系统绘制和弦的曲线部分时,它通过使用指定设备上下文的当前弧方向执行此操作。

默认的弧线方向是逆时针。可以通过调用 画弧改向 函数让应用程序重置弧线方向。

饼图是由椭圆曲线和两个径向的交集限定的区域。 下图显示了使用 画饼 函数绘制的 饼图 。

显示带阴影饼的椭圆的插图

调用 画饼 时,应用程序提供椭圆边框左上角和右下角的坐标,以及定义两个径向的两个点的坐标。

当系统绘制饼图的曲线部分时,它会使用给定设备上下文的当前弧线方向。

默认的弧线方向是逆时针方向。

多边形是一个带有直边的填充形状。 使用当前笔绘制多边形的两侧。

当系统填充多边形时,它使用当前画笔和当前多边形填充模式。

这两种填充模式(备用 (默认的) 和绕组)确定复杂多边形中的区域是填充的还是保持未配对状态。

应用程序可以通过调用 填充模式 函数来选择任一模式。

下图显示了使用 多边形绘制的多边形。

除了使用 画多边形 绘制单个多边形外,应用程序还可以使用 叠多边形 函数绘制多个多边形。

矩形是一个四面多边形,其对边是平行且长度相等的。

尽管应用程序可以通过调用 画多边形 函数(提供每个角的坐标)来绘制矩形, 但 画方块 函数提供了更简单的方法。

此函数只需要左上角和右下角的坐标。 当应用程序调用 画方块 函数时,系统会绘制矩形,

如果未为给定设备上下文设置世界转换,则不包括右侧和下侧。

中文名称英文名称示例作用
线条曲线函数
画弧线AngleArc画弧线(设备,x,y,半径,起始角,扫视角)圆弧沿着具有给定半径和中心的圆的周边绘制。弧的长度由给定的起始和扫视角度定义
椭圆弧Arc椭圆弧(设备,左,顶,宽,高,起X,起Y,终X,终Y)指定的矩形内的一个椭圆。画出从起点坐标到终点坐标的椭圆弧线
画椭圆弧ArcTo画椭圆弧(设备,左,顶,宽,高,起X,起Y,终X,终Y)跟Arc区别是是从画笔当前位置,画直线到圆弧起点,画完之后画笔停在圆弧终点.而Arc没有直线,画笔位置也不变
画弧取向GetArcDirection方向=画弧取向(设备)画圆弧的时候,判断当前采用的绘图方向。1逆时针 2顺时针
画弧改向SetArcDirection画弧改向(设备,方向)修改当前绘图采用的方向。1逆时针 2顺时针
画线LineTo画线(设备,终X,终Y)用当前画笔画一条线,从当前位置连到一个指定的点
线段枚举LineDDA线段枚举(起X,起Y,终X,终Y,@回调,数据)枚举由指定的起点和终点定义的行应突出显示哪些像素。回调
移到MoveToEx移到(设备,X,Y,旧坐标)为指定的设备场景指定一个新的当前画笔位置,不需要旧坐标可以为0
矩形偏移OffsetRect矩形偏移(矩形,X,Y)将指定的矩形移动指定的偏移量。
多点曲线PolyBezier多点曲线(设备,点组,点数)根据指定的坐标点数组绘制一条或多条贝塞尔曲线,一点到四点为一个点数,二三为控制点.四点到七点为第二点数
离散曲线PolyBezierTo离散曲线(设备,点组,点数)根据指定的坐标点数组绘制一条或多条贝塞尔曲线,功能同上
多线曲线PolyDraw多线曲线(设备,点组,点控,点数)根据指定的坐标点数组绘制一组线段和贝塞尔曲线,多了个控制曲线的数组
画折线Polyline画折线(设备,点组,点数)依次连接所有点来绘制一系列线段
画折线图PolylineTo画折线图(设备,点组,点数)依次连接所有点来绘制一系列线段
叠折线PolyPolyline叠折线(设备,点组,点数组,数量)画多组可以重叠的折线
填充形状函数
画和弦Chord画和弦(设备,左,顶,宽,高,起X,起Y,终X,终Y)绘制一个弧弦(由椭圆和线段的交点界定的区域,称为“割线”)。通过使用当前笔并使用当前画刷来填充弧弦。
画椭圆Ellipse画椭圆(设备,左,上,右,下)指定矩形内绘制一个椭圆。使用当前笔勾画,并使用当前笔刷填充椭圆。
画饼Pie画饼(设备,左,上,右,下,X1,Y1,X2,Y2)绘制一个由椭圆和两个径向交点界定的饼形楔形。通过使用当前笔并使用当前画笔填充饼图。(扇形)
画多边形Polygon画多边形(设备,点组,点数)依次连接所有点并把最后点与第一点相连,围成一个多边形并填充
叠多边形PolyPolygon叠多边形(设备,点组,点数组,数量)绘制一系列闭合多边形。绘制的面可以重叠。
画方块Rectangle画方块(设备,左,上,右,下)绘制一个矩形方块。使用当前画笔勾勒矩形的轮廓,并使用当前笔刷填充矩形。
圆角矩形RoundRect圆角矩形(设备,左,上,右,下,宽,高)在指定矩形内按圆角和宽度和高度绘制一个带有圆角的矩形。

线段枚举回调
中文名字英文名称参数作用解释
线段枚举回调LineDDAProc3它用于处理坐标。
线段枚举回调——参数表
参数1unnamedParam1整数unnamedParam1
参数2unnamedParam2整数unnamedParam2
参数3unnamedParam3整数unnamedParam3