首页 > 范文大全 > 正文

SMT锡膏检测中基于Delphi与OpenGL的锡膏三维显示

开篇:润墨网以专业的文秘视角,为您筛选了一篇SMT锡膏检测中基于Delphi与OpenGL的锡膏三维显示范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:研究在Delphi下采用OpenGL编程显示锡膏三维形态的方法,并且实现旋转、缩放及根据锡膏厚度显示不同的颜色等功能。实验结果表明:在Delphi7.0平台上采用OpenGL编程实现锡膏三维形态实时动态显示不仅可以避免大量的矩阵运算、减少程序代码长度、提高编程效率,而且能够提高图形的显示效果。

关键词:OpenGL;Delphi;双缓存技术;锡膏三维模型

中图分类号:TP391 文献标识码:A

1 引 言

smt(Surface Mounted Technology,表面贴装技术)锡膏检测中,对锡膏印刷质量进行全面三维测量,可以准确地重构印刷锡膏的三维形貌,不仅得到准确的体积信息,还得到锡膏的形状信息,既提高了测量精度,又提高了检测的准确性[1]。采用光栅投影相位测量轮廓术(Phase Shifting Profilometry,PSP)可以得到大量的锡膏表面上的离散点云数据,将这些点云数据在计算机屏幕上三维显示出来,以供进一步对锡膏印刷质量进行分析、处理。为了便于对锡膏的局部细节和全体概貌进行观察,常常需要对锡膏三维图进行旋转、缩放、平移、着色等处理,如果这些变换全部由程序员自己编写代码实现,需要用到大量的矩阵运算和向量运算,不仅费时而且代码冗长,程序可读性差。而利用开放性图形库(Open Graphic Library,OpenGL)可以很好地解决上述问题,并且能够提高图形的显示效果。

OpenGL是一个性能卓越的三维图形和交互式视景处理的开发环境,具有广泛移植性的应用程序编程接口(Application Programming Interface,API),使用某种编程语言(如Pascal)编写函数时,可以像调用其它API函数那样调用OpenGL库┖数[2]。

2 Delphi下的OpenGL编程

OpenGL是一种图形与硬件的接口,开发者可以利用OpenGL提供的函数进行三维建模和三维模型的动态显示[3]。Delphi直接在库程序中添加了对OpenGL的支持(在Delphi目录的lib目录下有OpenGL.pas文件,编程的时候需要在uses语句里加入OpenGL单元),具有与OpenGL的接口,使得开发者可以方便地在Delphi平台上采用OpenGL编程开发三维图形。Delphi下采用OpenGL编程技术的主要步骤为:OpenGL初始化;图形显示视口的控制;绘制、显示三维图形;释放资源。

计算技术与自动化2011年9月

第30卷第3期马勇平等:SMT锡膏检测中基于delphiopengl锡膏三维显示

2.1 OpenGL初始化

在创建窗体的时候,需要在窗体的OnCreate事件过程中初始化OpenGL,目的是为了创建绘制描述表(Rendering Context,RC)和设备描述表(Device Context,DC)。因为同Windows下用GDI(Graphics Device Interface,图形设备接口)绘图一样,必须通过设备场景调用相应的函数。OpenGL函数通过RC完成三维图形的绘制,在创建RC时,将它与DC相关联。RC的功能在于将OpenGL命令连接到DC,而DC将窗口连接到GDI,完成OpenGL函数通过RC对应的DC将图形绘制到相应的显示设备这一过程。在窗体的OnCreate事件过程中初始化OpenGL代码如下: