OpenGL: glBitmap光栅位图

源码如下:
#define GLUT_DISABLE_ATEXIT_HACK
#include "gl/glut.h"
#pragma comment(lib, "glut32.lib")

GLubyte zebra[]={0x00,0x00,0x00,0x00,
0x37,0x20,0x00,0x00,
0x13,0x60,0x00,0x00,
0x10,0x60,0x00,0x00,
0x14,0x60,0x00,0x00,
0x16,0x38,0x00,0x00,
0x06,0x18,0x00,0x00,
0x07,0x10,0x00,0x00,
0x07,0x40,0x00,0x00,
0x03,0x60,0x00,0x00,
0x03,0x70,0x00,0x00,
0x01,0x70,0x00,0x3e,
0x02,0x78,0x0a,0x78,
0x01,0x18,0x01,0x60,
0x01,0x48,0x0a,0x08,
0x00,0x62,0x14,0x00,
0x00,0xf6,0x11,0xf0,
0x00,0xfa,0x43,0xe0,
0x00,0x7c,0xea,0x60,
0x00,0x3d,0xcb,0x60,
0x00,0x19,0x9d,0x40,
0x00,0x08,0x22,0xc0,
0x00,0x00,0x09,0x80,
0x00,0x02,0x40,0x80,
0x00,0x01,0x1b,0x80,
0x00,0x01,0x08,0x80,
0x00,0x00,0x00,0x00,
0x00,0x00,0x28,0x00,
0x00,0x00,0x29,0x00,
0x00,0x00,0x49,0x80,
0x00,0x00,0x99,0x80,
0x00,0x00,0x00,0x00,
};

void Initialization(void);
void OnDisPlay(void);
void OnReshape(int,int);

void main(int argc,char* argv[])
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
	glutInitWindowSize(600,480);
	glutCreateWindow("EXAM601");

	glutReshapeFunc(OnReshape);
	glutDisplayFunc(OnDisPlay);

	Initialization();

	glutMainLoop();
}

void Initialization(void)
{
	glClearColor(1,1,1,1);
}

void OnDisPlay(void)
{
	glClear(GL_COLOR_BUFFER_BIT);

	glColor3f(1,0,0);

	glRasterPos2i(-3,-3); //指定当前光栅位置
	glBitmap(32,32,0,0,0,0,zebra);

	glPointSize(5);
	glBegin(GL_POINTS);
	glColor3f(0,1,0);
	glVertex2i(0,0);
	glEnd();

	glutSwapBuffers();
}

void OnReshape(int w,int h)
{
	GLfloat aspect =(GLfloat)w/(GLfloat)h;
	GLfloat nRange=100.0f;

	glViewport(0,0,w,h);

	glMatrixMode(GL_PROJECTION); //将当前矩阵指定为投影模式
	glLoadIdentity();

	//设置三维投影区

	if (w<=h)
		glOrtho(-nRange,nRange,-nRange*aspect,nRange*aspect,-nRange,nRange);
	else
		glOrtho(-nRange,nRange,-nRange/aspect,nRange/aspect,-nRange,nRange);
}

效果如下:


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值