矢量图形处理系统——分析与设计毕业论文
2022-02-13 20:49:21
论文总字数:20255字
摘 要
本文分析了计算机图形学中的具有重要意义的裁剪过程。将绘制图形与非自交多边形裁剪显示相结合,设计了一种能够自定义矢量图形并能够高效实现百万级数据裁剪的软件。
在分析非自交多边形裁剪需求的基础上,确定了软件的两个核心功能:第一个,手绘图形并对图形进行移动、改变操作;第二个,矢量图形在非自交多边形中的裁剪显示,包括对百万级数据的高效裁剪。本软件的主要开发平台为eclipse,开发语言为Java。
本文详细介绍了软件实施的过程,构建了系统的体系结构以及程序流程执行图和程序执行时序图,将软件分为五个模块,即读取图形信息模块、绘制图形模块、直线裁剪模块、圆裁剪模块、手绘图形模块。给出了各模块的实现流程图,对各模块的分析与设计,并给出了详细的分析和代码设计。除此以外,本文还着重探讨了图形裁剪过程的由于精度的误差所产生的“毛边”问题以及线程分配问题。
关键词: 裁剪 手绘图形 Eclipse Java
Design and Implementation of Vector Graphics Processing System - Analysis and Design
ABSTRACT
This paper analyzes the important cutting process in computer graphics. Combining drawing graphics with noncrossed polygon clipping display, we designed a software that can customize vector graphics and efficiently implement millions of data clipping.
On the basis of analyzing the requirements of non-self-polygon clipping, two core functions of software are determined: first, hand-drawn graphics and moving on graphics, changing operation; second, cutting of vector graphics in non-self- Display, including the efficient cutting of millions of data. The main development platform for the software eclipse, the development language for Java.
In this paper, the process of software implementation is introduced in detail, and the system architecture and program execution chart and program execution timing diagram are constructed. The software is divided into five modules: reading graphic information module, drawing graphics module, straight cutting module, circle Cutting module, hand-drawn graphics module. The realization flow chart of each module is given, the analysis and design of each module are given, and detailed analysis and code design are given. In addition, this paper also focuses on the "clipping" problem of thread cropping and the problem of thread allocation due to the error of precision.
Key Words: cropping; handwritten graphics; Eclipse; Java
目 录
摘 要 I
ABSTRACT II
第一章 绪论 1
1.1课题的背景及意义 1
1.2项目概述 1
1.3系统总体结构图 2
1.4功能概述 3
1.4.1读取图形信息功能 3
1.4.2绘制图形功能 3
1.4.3直线裁剪功能 4
1.4.4圆裁剪功能 6
1.4.5手绘图形功能 7
1.5开发工具及主要技术简介 8
1.5.1开发平台介绍 8
1.5.2 Java简介 8
1.6本章小结 8
第二章 系统分析 9
2.1系统需求分析 9
2.1.1功能性需求分析 9
2.1.2非功能性需求分析 9
2.1.3界面需求分析 10
2.1.3性能需求分析 11
2.2系统可行性分析 12
2.3本章小结 12
第三章 系统设计 13
3.1系统概述 13
3.1.1总体架构 13
3.1.2程序流程 14
3.1.3程序执行时序图 15
3.2绘制原始图 15
3.2.1功能描述 15
3.2.2业务流程 16
3.2.3实体设计 16
3.3裁剪图形 17
3.3.1功能描述 17
3.3.2业务流程 18
3.3.3直线的裁剪 18
3.3.4圆的裁剪 18
3.3.5百万级图像裁剪 18
3.4手工绘制图形 19
3.5本章小结 19
第四章 代码设计 20
4.1读取图形信息模块 20
4.1.1处理流程详细说明 20
4.1.2编码设计 20
4.1.3函数说明 21
4.2绘制图形模块 24
4.2.1处理流程详细说明 24
4.2.2编码设计 24
4.2.3函数说明 25
4.3直线剪裁模块 27
4.3.1处理流程详细说明 27
4.3.2编码设计 28
4.3.4函数说明 29
4.4圆剪裁模块 31
4.4.1处理流程详细说明 31
4.4.2编码设计 31
4.4.3函数说明 32
4.5 手绘图形模块 34
4.5.1处理流程详细说明 34
4.5.2编码设计 34
4.5.4函数说明 35
4.6本章小结 36
第五章 总结和展望 37
5.1 本文工作总结 37
5.2 下一步工作展望 37
参考文献 38
致谢 40
第一章 绪论
1.1课题的背景及意义
计算机中显示的图像通常可以分为矢量图和位图两类。矢量图形的元素是通过数学公式计算的点,线,矩形,多边形,圆和弧,因此矢量图形文件大小通常较小。位图使用称为像素的点的网格来描述图像。在位图中,图像将由每个网格中像素的位置和颜色决定,每个点的颜色值将被固定。当以更高的分辨率查看位图图像时,每个点都看起来像一个马赛克块。因为一定大小的位图图像以一定的分辨率逐位记录。在计算机图形学中,对象的主要处理是矢量图形。为了描述图形对象,它必须存储其所有信息,但有时为了实现分区描述的目的或者将重点放在描述的一部分上,通常将部分描述放在窗口中,而窗外的“剪掉”的过程称为切割。图形的裁剪是计算机图形学中具有十分重要意义的一项。
计算机图形学中许多重要问题是以图形的裁剪为基础的。多边形裁剪实用意义更加广泛,因此它也成为了当前裁剪研究的主要课题。
1.2项目概述
表1-1 名词/术语解释
中文全称 | 中文简称 | 解释说明 |
剪裁边界 | 窗口、视口、边界 | 一个封闭的多边形(非矩形,每条边没有交点,可凸可凹) |
矢量图形 | 图形 | 直线(实际上是线段,本文档都采用“直线”,由两个端点的坐标确定)或圆(由圆心坐标和半径确定) |
剪裁 | 剪裁 | 裁剪掉视口区域以外的所有图形,保留并绘制在视口边界以内的图形 |
毛边 | 毛边 | 是指在裁剪过程中,由于精度误差,保留的圆和直线的端点可能会在视口的外边,从而造成剪裁后的视口边缘不光滑,出现毛边现象 |
圆上的一个点的幅角 | 幅角 | 是指圆上的点与圆心的连线与水平线的夹角。 |
1.3系统总体结构图
系统结构图如图1-1所示:
请支付后下载全文,论文总字数:20255字