线

【勇芳软件工作室】汉化HomePreviousNext

线是由两点识别的光栅显示器上的一组突出显示的像素(或打印页面上的一组点):起点和终点。在Windows中,位于起点的像素始终包含在该行中,并且始终排除位于结束点的像素。(这种线有时被称为包容性排除。)

当应用程序调用其中一个Windows绘图功能时,图形设备接口(GDI)或某些情况下,设备驱动程序会确定应突出显示哪些像素。GDI是一个动态链接库(DLL),用于处理基于Windows的应用程序的图形函数调用,并将这些调用传递给设备驱动程序。设备驱动程序是从GDI接收输入的DLL,将输入转换为设备命令,并将这些命令传递到适当的设备。GDI使用数字差分分析仪(DDA)来确定定义一行的像素集。DDA通过检查线上的每个点并识别与点相对应的显示表面上的像素(或打印页上的点)来确定像素集合。下图显示了一条线,其起点,其终点和使用简单DDA突出显示的像素。

最简单和最常见的DDA是Bresenham或增量DDA。该算法的修改版本在Windows版本3中绘制线。【x】.增量DDA由于其简单性而着名,但由于其不准确性也被注意到。因为它舍入到最接近的整数值,它有时不能表示应用程序请求的原始行。GDI使用的Microsoft Win32 DDA不会舍入到最接近的整数。因此,这种新的DDA产生的输出有时在外观上与应用程序要求的原始线更接近。

注意如果应用程序需要使用新的DDA无法实现的行输出,则可以通过调用LineDDA函数并提供私有DDA来绘制自己的行。但是,LineDDA函数的绘制线比Windows绘图函数慢得多。如果速度是主要关注,请【不】在应用程序中使用此函数。

应用程序可以使用新的DDA绘制单行和多个连接的线段。应用程序可以通过调用LineTo函数来绘制一行。该函数从当前位置绘制一条线,但不包括指定的终点。应用程序可以通过调用折线函数绘制一系列连接的线段,提供指定每个线段的终点的点阵列。一个应用程序可以通过调用PolyPolyline函数来绘制多个不相交的连接线段,从而提供所需的终点。

下图显示了通过调用LineTo折线PolyPolyline功能创建的行输出。