交互技术与用户接口 计算机图形学,计算机图形学学习--7.图形用户界面与交互技术(2)...

接上篇,glut也提供了用户与图形进行键盘交互的函数,其函数原型为:

void glutKeyBoardFunc(void * Func(unsigned char key,int x,int

y));​

func为处理键盘消息的回调函数。第一个参数key对应按键的ASCII码。x,y则对应按键按下时候鼠标的位置。​

在程序中我们绘制一个正方形,然后通过按下w,a,s,d操作方块移动。

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

在keyboard方法内通过switch来判断不同的按键消息,注意在函数最后需要调用glutPostRedisplay方法来立即重绘,否则图形变换也不会显示。

这里再强调下Reshape​函数,其用于在窗口改变时保持图形相应尺寸的变换。

glOrtho2D(xmin,xmax,ymin,ymax)为裁剪窗口在世界坐标系的位置,其参数分别为x最小,x最大,y最小,y最大。​​这个函数通俗点的解释就是在3D空间截取了一个平面来显示。

glViewPort(startx,starty,width,height)为绘图区在窗口中显示的位置,其坐标以屏幕坐标系作为参考,参数分别表示绘图区在显示窗口的起点以及绘图的宽度和高度。​

下图表示了通过键盘使得矩形移动。

a4c26d1e5885305701be709a3d33442f.png矩形原始位置

a4c26d1e5885305701be709a3d33442f.png矩形通过键盘向右移动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值