《高效学习OpenGL》 之 创建机器人手臂源码讲解
来源:互联网 发布:js加密混淆工具 编辑:程序博客网 时间:2024/06/11 03:26
#include <GL/glut.h>#include <stdlib.h>static int shoulder = 0, elbow = 0;void init(void) { glClearColor (0.0, 0.0, 0.0, 0.0); glShadeModel (GL_FLAT);}void display(void){ glClear (GL_COLOR_BUFFER_BIT); glPushMatrix(); glTranslatef (-1.0, 0.0, 0.0);//转移局部坐标系中心-1 glRotatef ((GLfloat) shoulder, 0.0, 0.0, 1.0);//绕局部坐标系原点旋转 glTranslatef (1.0, 0.0, 0.0);//把局部坐标系转回立方体中心 glPushMatrix(); glScalef (2.0, 0.4, 1.0); glutWireCube (1.0); glPopMatrix(); glTranslatef (1.0, 0.0, 0.0);//转移局部坐标系到第一个立方体的右侧 glRotatef ((GLfloat) elbow, 0.0, 0.0, 1.0);//绕局部坐标系旋转 glTranslatef (1.0, 0.0, 0.0);//转移到第二个立方体中心 glPushMatrix(); glScalef (2.0, 0.4, 1.0); glutWireCube (1.0); glPopMatrix(); glPopMatrix(); glutSwapBuffers();}void reshape (int w, int h){ glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective(65.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef (0.0, 0.0, -5.0);}void keyboard (unsigned char key, int x, int y){ switch (key) { case 's': shoulder = (shoulder + 5) % 360; glutPostRedisplay(); break; case 'S': shoulder = (shoulder - 5) % 360; glutPostRedisplay(); break; case 'e': elbow = (elbow + 5) % 360; glutPostRedisplay(); break; case 'E': elbow = (elbow - 5) % 360; glutPostRedisplay(); break; case 27: exit(0); break; default: break; }}int main(int argc, char** argv){ glutInit(&argc, argv); glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize (500, 500); glutInitWindowPosition (100, 100); glutCreateWindow (argv[0]); init (); glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(keyboard); glutMainLoop(); return 0;}
0 0
- 《高效学习OpenGL》 之 创建机器人手臂源码讲解
- opengl 机器人手臂
- Opengl 模拟机器人手臂
- 《高效学习OpenGL》之 创建太阳系模型
- 《高效学习OpenGL》 之 创建光源 glLightfv()
- 用OpenGL绘制旋转的机器人手臂
- c语言在qt环境下调用opengl es 2.0 api创建机器人手臂
- opengl绘制一个机器人手臂的一些问题
- 《高效学习OpenGL》 之 过滤
- 《高效学习OpenGL》之 openGL工作流程
- 《高效学习OpenGL》之 openGL绘图流程
- 《高效学习OpenGL》之 openGL句法
- 《高效学习OpenGL》之 openGL状态变量
- 《高效学习OpenGL》之 openGL变换
- 《高效学习OpenGL》之Hello OpenGl
- OpenGL学习入门之二维机器人
- 机器人手臂轨迹规划
- 《高效学习OpenGL》之混合数组 glInterleavedArrays()
- C++11 lambda 快速理解
- Linux内核中链表的实现
- A Barbecue
- 论文思路
- Qsys 13.1 Flash
- 《高效学习OpenGL》 之 创建机器人手臂源码讲解
- VMware读取U盘USB设备
- site
- 序列化Python对象
- linux虚拟机上不了网的问题!
- 『算法学习笔记』1st day. 顺序结构程序设计
- 游戏服务器之技能
- python学习笔记1语句
- OpenNI + OpenCv2的第二个实验手势识别