简单一个opengl程序,2D图形移动

本文介绍了作者开始学习OpenGL的过程,通过《OpenGL编程指南》入门,并使用固定管线实现了一个简单的2D正方形移动示例。程序包含draw和move两个函数,分别用于绘制和控制移动。在空闲时,glutIdleFunc会调用move更新位置,glutDisplayFunc则负责重绘。此外,程序还响应用户键盘输入,根据方向键调整正方形的移动方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很早打算系统的学习一下opengl,但是由于课程以及学习算法占据了时间,一直没能开始,现在这段时间开始弄opengl了,这几天看正在看《Opengl 编程指南 第8版》,首先看了GLSL写shader。这里先使用固定管线写个简单的小例子试试,然后开始进行可编程管线。

这个小例子很简单,就是在2D平面画个正方形,然后左右移动。

思路很简单,主要是两个函数,draw 和 move,draw负责绘制,move负责移动的控制,然后设置两个回调函数,glutDisplayFunc和glutIdleFunc,这样在空闲的时候就会调用move函数,设置移动信息,然后发送一个重新显示的信号,这样就能回调draw函数进行在移动后的新位置重新绘制。


#include <gl/glew.h>
#include <gl/glut.h>
#include <iostream>
#include <cstdlib>

using namespace std;

GLfloat rtx = 0, rty = 0, rtz = 0;

void init()
{
	glLoadIdentity();
	glClearColor(0.0, 0.0, 0.0, 0.0);
}

void draw(void)
{
	glClear(GL_COLOR_BUFFER_BIT);

	glPushMatrix();
	glTranslatef(rtx, rty, rtz);

	glBegin(GL_QUADS);
		glColor3f(1.0f, 0.0f, 0.0f);
		glVertex2f(-0.5f, 0.5f);
		glColor3f(0.0f, 1.0f, 0.0f);
		glVertex2f(0.5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值