1. 问题的提出
在一些数据库管理系统或办公自动化和统计类软件中,一般具有绘制三维视图的功能。使用时通常要求在给出的表格中输入绘图的数据及视角、比例尺等参数。这只适用于小批量的统计数据绘制统计三维视图。在地质、地貌、气象、水文、交通、林业等许多领域,需要描述的某一量通常具有空间分布特征,这种空间分布数据的数量一般十分庞大,当使用上述三维视图软件绘图时经常会遇到输数表格容纳不下的问题,而且按表格重新输入数据也容易出错和耗费许多人力。
三维视图的绘制及相应绘图数据的组织并不是一件十分困难的事,使用少量程序代码就可以实现这一目标。本文将介绍一种以C++语言实现大批量数据绘制三维视图的简易方法。该法的关键技术在于:(1)以FoxPro数据库管理系统整理绘图数据并制成可为C++语言包括和调用的.h文件;(2)在绘制三维视图中,以“多边形法”进行需遮蔽线段的消隐。
2. 绘图数据的准备
绘图的原始数据来自FoxPro(或FoxBase)数据库管理系统。可以将某幅图的数据置于一个一维数组中,并包括在一个.h文件中。这样只要在C++的绘三维视图程序首包括该头文件,就可以在程序的任何位置调用这些数据。例如有一个数据串:3,8,10,11,27,6,……,设存放数组为A,数据文件名为data.h,在data.h中,该数据串的存放形式为:
A={ 3,8,10,11, 27, 6, : :};
这些数据可由FoxPro的.dbf文件拷贝得到。当然,在拷贝前还需经过简单的加工。设在.dbf文件中,待绘图数据所在的字段为DT1,此时可增设一个字段DH(逗号),并将该字段的内容全以“,”替换,然后以如下命令拷贝到data.h文件中: copy to data.h field DT1,DH dele with blank 随后打开data.h文件,在数据首加上“A={”,在数据尾加上“ };”即可。
3. 绘三维视图编程基本思想
绘三维视图的关键技术在“消隐”,即消去在三维观察时应该被挡住看不见的线。在有关“计算机图形学”的书籍中所介绍的消隐法多为“计算法”,即由当前数据点行计算在已绘出的线条中哪些应该隐去,再清除这些线条。笔者自己设计了一种简便新颖的消隐法(这里姑且称之为“多边形法”),不仅程序代码简单,而且这种消隐法的原理也十分简洁明了。现将其基本思想及运算步骤介绍如下:
3.1 首排数据绘X方向网线。以line函数将首排数据点连线;
3.2 绘Y方向网线。将第2排与第1排在Y方向相对应的数据点连线;
3.3 以“多边形法”做消隐。据第2排点的数据以背景色涂刷一个多边形,这样,可能被第2排数据点连线所遮蔽的线条(即应消隐的线)即被擦除;
3.4 第2排数据绘X方向网线。以line函数将第2排数据点连线;
3.5 重复步骤3.2~3.4,直至绘完全图。
4. 绘三维视图源程序(for Windows)
5. 结论
绘图数据及缩放、视角等参数皆存于data.h文件中,或在该文件中说明,所以当绘图参数等内容变化时,只要修改或重新制作data.h文件即可。由此可见该程序具有使用灵活,可容绘图数据量大等优点,可用于各种空间分布数据三维视图的绘制,尤其适合于大数据量绘图。
分享到:
相关推荐
通过vc实现三维视图的绘制和消隐技术, 包括三维视图的绘制及相应绘图数据的组织
CAD三视图绘制与三维建模PPT教学课件.pptx
CAD三视图绘制与三维建模PPT教案.pptx
CAD三视图绘制与三维建模ppt课件.ppt
主要介绍了图形学的三维视图基础知识,包括矩阵的视角变换等
在OpenGL视图中绘制三维物体,典型例子.有利于初学者学习。
CAD三视图绘制与三维建模学习课程.pptx
CAD三视图绘制与三维建模学习教案.pptx
CAD三视图绘制与三维建模PPT学习教案.pptx
在OPENGL视图中绘制三维物体,对学习OPENGL具有很好的参考价值
在vc++2008下开发的专题实用程序 OpenGL视图中绘制三维物体
CAD三维建模技术绘制水利工程复杂形体视图的应用.pdf
从两个文件读取三维坐标数据,并绘制出轨迹对比图。
C++MFC实现的绘制正方体的三视图,自己做的第一个啦,努力努力
C#实现的三维视图变换,三维投影变换演示,包括正视图、侧视图、俯视图、前视图、正投影、正等轴侧视图等。在C#中,没有内置的三维矩阵类和三维点类。 绘制原理: 确定绘制图形坐标 确定投影矩阵 投影...
Bodypaint 3D R13是一款十分专业的三维纹理绘制的免费电脑软件。内置200多种工具、10个材质通道,采用raybrush技术,可以方便的在渲染完成的图像上绘制纹理,很多图片制作中都要用到这款软件。有需要的朋友可以来...
CAD三维图的绘制教程 目录如下: 工字型的绘制 二维五角形到三维五角星的绘制 汤勺主视图、纵截面轮廓线图和横截面图的尺寸,进行实体造型
Bodypaint 3D R13是一款十分专业的三维纹理绘制的免费电脑软件。内置200多种工具、10个材质通道,采用raybrush技术,可以方便的在渲染完成的图像上绘制纹理,很多图片制作中都要用到这款软件。有需要的朋友可以来...