OpenGL风车项目

本次项目实现了3d风车的构建,实现了通过方向键旋转视角,鼠标滚轮缩放视角。实现了键盘c键加速旋转,z键减速旋转,x键改变旋转方向。实现了渲染真实有触感变化的按钮并用按钮改变旋转方向。实现了右键菜单,选择三个菜单项分别可以切换旋转方向、增大旋转速度以及减小旋转速度

具体实验步骤:

首先是构建一个3D的风车模型,这里我首先创建一个drawWindMill()函数,在里面加入构成风车的五大部分以及按钮与文字的渲染,构成风车的五大部分分别是中间的黄色三角,三个分车旋翼,一个支柱。具体实现过程见代码。我们还可以在三角形点组中设计三的倍数个点来渲染多个三角形拼接的图形,如扇叶,支柱等。其次是实现风车的旋转动画,这里我通过每次刷新修改wing_z的方式来改变扇叶的角度实现旋转。键盘控制风车转速,这里我是用的glutKeyboardFunc(rotateWind);来监听键盘的输入,rotateWind()来绑定键盘一旦监听到zxc键,立马以通过改变progstep间接改变wing_z变量的形式体现在刷新上,至于保持旋转与wing_z控制则是rotate()通过glutIdleFunc(rotate);在进行。上面说的间接改变也是他的功劳。按钮这里我用的比较笨的办法,首先渲染出一个矩形,之后在上面渲染文字,之后绑定鼠标按键,检测当鼠标位于矩形中且点击左键,缩放矩形文字并改变旋转方向。
右键菜单用的GLU自带的glutCreateMen方法,比较简单。

收获:

通过这次试验,我理解与掌握了opengl流水线渲染动画基本知识。知道了OpenGL是通过一个个的点绘制出平面作为组件,并在每次循环中通过改变这些组建的坐标来渲染出一个可动的画面。我还学会了如何把参数的变化与鼠标,键盘的按键绑定起来,来实现控制组件的运动。

代码: https://github.com/Goden-Yang/OpenGL-WindMill

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值