opengl三维点立体显示

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

1. 数据处理

数据格式如下图所示:

2120ac101f748839a4517bb139cbc1c572a.jpg

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

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

显示结果如下图:

16c162d8392c282cb33683a445fd19b89e7.jpg

 

转载于:https://my.oschina.net/u/2460402/blog/1831980

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值