软件本身是采用微软的MFC技术,所以软件本身的架构是视图-文档架构,同时引用了一些开源的软件进行机械臂动态视图的渲染。如下是项目的类图,可以清楚的反应产品的架构。
MFC有标准的类架构,这些标准的类如,视图类,文档类,框架类,这里就不多做介绍,网上有大量的介绍文章,本文重点说明机械臂是如何在视图中渲染,显示出来,这里重点用到了两个类
- STLObject:此类主要的功能是通过读取3D模型文件*.stl文件(此类文件也是3D打印的标准文件,常用的结构设计软件都可以导出此类型文件)通过GL进行渲染
- BotDrawer:此类是机械臂的可活动组件结构类,此类头文件中将机械臂的各个可获得组件,声明为一个STObject类,在display函数同通过相对坐标,进行渲染显示:
下图是通过OpenGL对机械臂的4个关活动组件进行渲染,并且定义了相对坐标,及相对旋转角度,这里主要用到两个OpenGL的函数
glTranslatef(0.0, main_axis_offset_to_base_z, 0.0); 其作用是将当前绘制点平移一个(X,Y,Z)的向量
glRotatef(degrees(angles[0]), 0.0, 1.0, 0.0);其作用是控制当前几何图形围绕哪给做旋转多少度,后3个参数分别代表x,y,z轴,取值为布尔类型,1表示围绕对应的轴旋转
以上就是机械臂初始化渲染的过程,看似简单,但这里运用了OpenGL很多的知识,下一篇介绍如何响应鼠标事件,实现机械臂3D视图的拖动旋转。