opengl三维点立体显示

此篇文章主要是用已有的三维数据绘制立体图形。

1. 数据处理

数据格式如下图所示:

采用结构体形式定义数据结构,将数据信息存储到结构体中,便于存储和调用。结构体定义如下图:

struct datas {
	float x;
	float y;
	float z;
};
vector<datas> incsv;

调用数据方式:

incsv.x,incsv.y,incsv.z

2. 三维显示

在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();
}

显示结果如下图:

posted @ 2020-10-30 15:42  如鹿~  阅读(969)  评论(0编辑  收藏  举报