三维数据模型分层图形传递及中间层的研究(5)

2019-03-03 21:52

由以上3.4STL文件的读入与分析和3.5下位机需要获取的文件分析中我们明确了我们程序开发的目标是要将两种数据格式进行提纯转换输出。数据转换算法这里涉及到三个方面的内容:①判断XYZ坐标字符并读取坐标值;②对坐标值进行优化处理;③以固定格式输出文件。 ①判断XYZ坐标字符并读取坐标值

在这里为了判断XYZ字符我们使用switch多分支选择语句进行判断,同时在正确判断到XYZ字符时,我们还使用atof()函数将字符串转化为浮点数。以下图3-7为switch语句判断XYZ坐标流程图,相对应的程序代码为4.2.2数据读取模块这部分。

图3-7 switch语句判断XYZ坐标流程图

②对坐标值进行优化处理

由于下位机能够接收到的数据需要以整数的形式出现,我们还需要将浮点数转化整数,并且在取整的过程中我们要保证输出的数据位数控制在5位以内,以提高喷头运动轨迹的准确性和缩小误差范围。因此我们必须要对坐标值做优化处理,即四舍五入取整。以下图3-8为坐标值四舍五入取整流程图,对应的程序代码为4.2.3坐标值数据转换模块。

16

图3-8 坐标值四舍五入取整流程图

③以固定格式输出文件

由3.5下位机需要获取的文件分析我们知道下位机能够接收的数据格式为: @+X坐标值位数+X坐标值数值+@+Y坐标值位数+Y坐标值数值+@+Z坐标值位数+Z坐标值数值@+U值位数+U值数值+@10$,特别注意的是还要求取XYZ坐标值得位数,对应的程序代码为4.2.4格式化输出坐标模块。

17

4.软件的模块化设计

4.1文本文件操作相关概念

①数据流:指程序与数据的交互是以流的形式进行的。进行C语言文件的存取时,都会先进行“打开文件”操作,这个操作就是在打开数据流,而“关闭文件”操作就是关闭数据流。

②缓冲区:指在程序执行时,所提供的额外内存,可用来暂时存放做准备执行的数据。它的设置是为了提高存取效率,因为内存的存取速度比磁盘驱动器快得多。

C语言的文件处理功能依据系统是否设置“缓冲区”分为两种:一种是设置缓冲区,另一种是不设置缓冲区。由于不设置缓冲区的文件处理方式必须使用叫低级的I/O函数(包含在头文件io.h和fcntl.h)来直接对磁盘存取,这种方式的存取速度慢,并且由于不是C的标准函数,跨平台操作时容易出现问题[8]。

因此,我们使用设置缓冲区的文件处理方式。当使用标准I/O函数(包含在头文件stdio.h中)时,系统会自动设置缓冲区,并通过数据流来读写文件。当进行文件读取时,不会直接对磁盘进行读取,而是先打开数据流,将磁盘上的文件信息拷贝到缓冲区内,然后程序再从缓冲区中读取所需数据。当写入文件时,并不会马上写入磁盘中,而是先写入缓冲区,只有在缓冲区已满或“关闭文件”时,才会将数据写入磁盘。如下图4-1所示:

18

图4-1 文件的打开、读写、关闭过程示意图

4.2 数据转换模块 4.2.1初始化模块

19

图4-2 初始化模块程序代码

图4-2这个模块是用来初始化X、Y、Z的坐标值,使用fopen()函数打开文件,并且判断输入输出文件打开是否成功,失败则返回错误信息。如果打开成功,我们将给文件添加后缀.xyz,当所有的数据都读取出来后,生成的存放转换后数据的文件的后缀就是.xyz了。 4.2.2数据读写模块

20


三维数据模型分层图形传递及中间层的研究(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏州园区专家论证模板 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: