曲线属性
曲线属性的参数与线段相同,可以使用各种颜色、宽度、点划线模式和有效的画笔和笔刷选择 来显示曲线。采用画曲线算法来实现属性选择,这一点类似于画直线。
各种宽度的光栅曲线可用水平或垂直像素段进行显示。曲线斜率的绝对值小于1.0时,使用垂 直段;斜率绝对值大于1.0时绘制水平段。图4.10给出了使用这种方法显示在第一象限中宽度为4 的圆弧。利用圆的对称性,在从x = 0到x = y的八分象限内使用垂直段生成圆路径。然后对于直 线y = x,将像素位置反射便得到所显示曲线的余下部分。其他四分象限内的圆弧段,可通过对坐 标轴反射第一象限中的像素位置而得到。使用这种方法显示的曲线粗细则是根据曲线斜率的函数, 圆、椭圆和其他曲线上斜率绝对值为1的位置将显得最细。
另一种显示粗曲线的方法是填充两条距离等于预定宽度的平行曲线路径间的区域。我们可以用 指定的曲线路径作为第一条边界,并在其内侧或外侧建立第二条边界。然而,这种方法使得原始曲 线路径按所选的第二条边界向内或向外偏移。我们可以通过在指定的曲线路径两侧以宽度的一半为 距离,设置两条边界曲线来保持原曲线位置。图4.11给出了这种方法的一个例子,图中的圆弧半径 为16,线宽为4。然后,在半径为16、两侧距离为2处设置两条边界圆弧。为了保持在3.13节讨论 的圆弧的合适尺寸,可以将同心边界圆弧的半径设为:r = 14和 r = 17。尽管这种方法对于生成粗线 圆是精确的,但通常该方法仅提供对其他粗曲线的真正区域的一个近似范围。例如,使用这种方法 生成的扁椭圆,其内部和外部边界的焦点不是相同的。
曲线的画笔(或画刷)显示可以使用在线段中讨论的相同技术来生成。在图4.13中,我们沿 线路径重复画笔的形状,从而生成第一象限内的圆弧。这里,矩形画笔的中心移向后继曲线位置, 从而产生显示的曲线形状。当曲线斜率为1时,以这种用矩形画笔显示的曲线会比较粗。如果要显 示一致的曲线宽度,可以通过旋转矩形画笔,使其在沿曲线移动时与斜率方向一致,或用圆弧画笔 形状来实现。使用画笔和画刷形状绘制的曲线,可以使用不同大小和附加的图案或模拟的绘画技巧 进行显示。
绘画程序提供了交互方式,可以使用触笔和图形板等指点设一备来构造图形。图4.14给出了这
类曲线图案的例子。绘画软件中可另外提供模拟毛笔笔划显示的选项。
曲线属性的参数与线段相同,可以使用各种颜色、宽度、点划线模式和有效的画笔和笔刷选择 来显示曲线。采用画曲线算法来实现属性选择,这一点类似于画直线。
各种宽度的光栅曲线可用水平或垂直像素段进行显示。曲线斜率的绝对值小于1.0时,使用垂 直段;斜率绝对值大于1.0时绘制水平段。图4.10给出了使用这种方法显示在第一象限中宽度为4 的圆弧。利用圆的对称性,在从x = 0到x = y的八分象限内使用垂直段生成圆路径。然后对于直 线y = x,将像素位置反射便得到所显示曲线的余下部分。其他四分象限内的圆弧段,可通过对坐 标轴反射第一象限中的像素位置而得到。使用这种方法显示的曲线粗细则是根据曲线斜率的函数, 圆、椭圆和其他曲线上斜率绝对值为1的位置将显得最细。
另一种显示粗曲线的方法是填充两条距离等于预定宽度的平行曲线路径间的区域。我们可以用 指定的曲线路径作为第一条边界,并在其内侧或外侧建立第二条边界。然而,这种方法使得原始曲 线路径按所选的第二条边界向内或向外偏移。我们可以通过在指定的曲线路径两侧以宽度的一半为 距离,设置两条边界曲线来保持原曲线位置。图4.11给出了这种方法的一个例子,图中的圆弧半径 为16,线宽为4。然后,在半径为16、两侧距离为2处设置两条边界圆弧。为了保持在3.13节讨论 的圆弧的合适尺寸,可以将同心边界圆弧的半径设为:r = 14和 r = 17。尽管这种方法对于生成粗线 圆是精确的,但通常该方法仅提供对其他粗曲线的真正区域的一个近似范围。例如,使用这种方法 生成的扁椭圆,其内部和外部边界的焦点不是相同的。
曲线的画笔(或画刷)显示可以使用在线段中讨论的相同技术来生成。在图4.13中,我们沿 线路径重复画笔的形状,从而生成第一象限内的圆弧。这里,矩形画笔的中心移向后继曲线位置, 从而产生显示的曲线形状。当曲线斜率为1时,以这种用矩形画笔显示的曲线会比较粗。如果要显 示一致的曲线宽度,可以通过旋转矩形画笔,使其在沿曲线移动时与斜率方向一致,或用圆弧画笔 形状来实现。使用画笔和画刷形状绘制的曲线,可以使用不同大小和附加的图案或模拟的绘画技巧 进行显示。