opengl 鼠标捡选(可漫游,gluPickMatrix)

该博客介绍了如何使用OpenGL实现鼠标点击选择3D场景中的对象(如太阳系行星),并提供了相应的代码示例。通过gluPickMatrix和gluPerspective进行视口变换和投影,实现精确的鼠标选择。当鼠标点击时,通过ProcessSelection函数处理选择,显示所选物体的信息。此外,还展示了如何处理窗口大小改变以保持正确的透视效果。
摘要由CSDN通过智能技术生成

//参照opengl超级宝典的planets源程序

#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
#include <math.h>


#define glRGB(x, y, z) glColor3ub((GLubyte)x, (GLubyte)y, (GLubyte)z)

#define SUN  1
#define MERCURY 2
#define VENUS 3
#define EARTH 4
#define MARS 5

GLfloat fAspect;


// Called to draw scene
void RenderScene(void)
 {
 // Clear the window with current clearing color
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

//此处可加gluLookAt()函数

 // Save the matrix state and do the rotations
 glMatrixMode(GL_MODELVIEW);
 glPushMatrix();

 // Translate the whole scene out and into view 
 glTranslatef(0.0f, 0.0f, -300.0f); 

 // Initialize the names stack
 glInitNames();
 glPushName(0);

 
 // Set material color, Yellow
 // Sun
 glRGB(255, 255, 0);

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值