1、3.5 线宽与线型的处理,一、直线的线宽处理 1、线刷子 两种类型 水平线刷子:对接近垂直的线用水平线刷子。 垂直线刷子:对接近水平的线用垂直线刷子。 画法 将线刷子的中心放在直线的端点,线刷子的中心沿着直线移动,直到直线的另一个端点,线宽与线型的处理,特点 用线刷子画的线的宽度比定义的(想得到的)线宽略窄。 优点:实现简单 缺点: 线段两端要么为水平的,要么是竖直的 当折线的两根直线的斜率分别大于1和小于1时,在顶点处有缺口 对于宽度为偶数像素的直线会产生偏移,2、方形刷子,画法 将方形刷子的中心放在直线的端点,方形刷子的中心沿着直线移动,直到直线的另一个端点 特点 对接近水平和接近垂直的线
2、均适用。 用方形刷子画的线的宽度比定义的(想得到的)线宽略宽。 优点:实现简单 缺点: 线段两端要么为水平的,要么是竖直的 对于宽度为偶数像素的直线会产生偏移,二、圆的线宽处理,(只考虑1/4圆) 1、线刷子 两种类型 水平线刷子:斜率小于1的部分用水平线刷子。 垂直线刷子:斜率大于1的部分用垂直线刷子。 画法 将线刷子的中心放在圆上,沿着圆弧移动 特点 圆弧的宽度不均匀,用线刷子画的线的宽度在圆弧两端等于定义的线宽,而在圆弧的中间比定义的线宽略窄。 当圆弧上的点与圆心的连线与x轴成45o时,线刷子必须变换方向。 优点:实现简单 缺点:1)在斜率等于1处有缺口2)对于宽度为偶数像素的圆弧有偏移,2、方形刷子,画法 将方形刷子的中心放在圆上,沿着圆弧移动 特点 圆弧的宽度不均匀,用方形刷子画的线的宽度在圆弧两端等于定义的线宽,而在圆弧的中间比定义的线宽略宽。 优点:实现简单 缺点:对于宽度为偶数像素的圆弧有偏移,三、填充法,利用填充图元 画出所要得到的具有一定线宽的图元的封闭的边界,再用区域填充的方法进行填充。特点: 优点 生成的图形质量高 缺点 计算量大 有些图形的等距线难以获得,四、线型的处理,用一个布尔值系列来存放线型值 把扫描转换算法中的无条件写象素语句改为if(位串i % 32) drawpixel(x,y,color),