资料详情

基于Python实现的图形绘制系统 课程论文+项目源码+系统说明书+演示视频

头像

Python

编号:2038

目录

综述

算法介绍

直线生成

DDA算法

Bresenham算法

多边形的生成

椭圆的生成 中点圆生成算法

在实现的时候遇到的小问题

曲线的生成

B样条曲线

图元的平移

图元的旋转

图元的缩放

线段的裁剪

Cohen-Sutherland算法

Liang-Barsky 算法

6. 具体的操作步骤如下:

额外的一些算法

2. 边表(Edge Table):所有边按下端点的y坐标归类

3. 排序。如果有新边插入 AET,则对 AET 中各边排序;

镜像变换

系统介绍

CLI

GUI

概述

主要布局

画布部分

原理概述

色彩笔宽部分

图元操作部分

线段裁剪部分

重置画布部分

主题部分

总结

参考文献

B样条曲线

图元的旋转

Cohen-Sutherland算法

扫描线算法

图标

综述

本实验主要为了实现一个图形绘制系统,主要内容包括了底层算法实现,命令行系统完善和图形界面系 统(pyqt)的实现;

根据大实验的具体要求,主要通过Python3完成了以下模块的内容:  核心算法模块:cg algorithm.py(除Liang-Barsky完成)

命令行界面程序:cg cli.py(完成)

用户交互界面(待做)

算法介绍

直线生成

DDA算法

DDA算法是计算机图形学基本的绘制直线算法,主要的思想来源   ,显然,已知两个端点就可以知道k和b具体的值;

在已知k,b的情况下,只需要知道x,y中的一个就可以通过直线公式求到另一边的值;假设已知x,那么

y=kx+b;假设已知y,那么x=(1/k)*(y-b)

实际操作中绘画直线是一个迭代的过程,如果使用DDA算法,相对于前一个   ,后一个点

可以记作:

yStep,xStep即步长是通               的比较确定的:

如果dx>dy,那么说明x轴方向上面两个点的距离更远,那么设  反之,说明y轴方向上面两个点的距离更远,设

当然在具体实现上面还需要考虑斜率为正无穷的情况和斜率为0的情况,这个时候进行特判就可以实现了;