实验三 基本图元的生成
实验要求:
1. 在实验二的基础上,按要求完成如下任务:
(1)添加菜单项或者工具条按钮,分别采用中点法和Bresenham算法实现直线段的绘制。
(2)添加菜单项或者工具条按钮,分别采用中点法和Bresenham算法实现圆的绘制。
(3)添加菜单项或者工具条按钮,采用实区域填充法修改直线或圆的线宽。
(4)添加菜单项或者工具条按钮,采用扫描线法和栅栏填充法对封闭区域(比如矩形,用多义线绘制的三角形或者多边形等)进行填充。
(5)添加菜单项或者工具条按钮,通过多个控制点绘制连续的B样条曲线。
对于(3), 点击Thickline按钮即可在粗线条与普通线条之间切换, 就是说点两下就可以切回去
以上功能都已实现, 不过(4)有点bug:扫描线法(Scanline fill)填充不能填充特别大的图形; 栅栏填充法(Flood fill)只能填充很小的图形.
此外可能还有一些其他的bug没有发现, 欢迎大家指出
其他使用方法详见我的上一篇文章(如果main.exe无法运行, 或者想编译源文件都在我的上一篇文章里)
代码详见:
或者