此篇文章主要是用已有的三维数据绘制立体图形。
数据格式如下图所示:
采用结构体形式定义数据结构,将数据信息存储到结构体中,便于存储和调用。结构体定义如下图:
struct datas { float x; float y; float z; }; vector<datas> incsv;
调用数据方式:
incsv.x,incsv.y,incsv.z
在opengl中使用默认的笛卡尔坐标系统,x是横坐标轴,y是纵坐标轴,z轴正方向从屏幕向外指向用户;由于z轴坐标存在一定的偏差,在视觉上很难看出z轴的偏移,故我们要开启深度测试。
BOOL bCull = TRUE; //是否开启回溯剔除 BOOL bDepth = FALSE; //是否开启深度检测 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); if (bCull) glEnable(GL_CULL_FACE); else glDisable(GL_CULL_FACE); if (bDepth) glEnable(GL_DEPTH_TEST); else glDisable(GL_DEPTH_TEST);
控制数组输出显示:
for (int i = 0; i < incsv.size(); i++) //加载三维点 { glColor3f(1.0f, 0.0f, 0.0f); glPointSize(2); glBegin(GL_POINTS); glVertex3f(incsv[i].x, incsv[i].y, incsv[i].z); glEnd(); }
显示结果如下图: