《计算机图形学》转动的机器人

2024-05-04 19:38

本文主要是介绍《计算机图形学》转动的机器人,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近一直在弄机器人,好晕,画个机器人,让机器人转起来,神奇.....


#include <math.h>
#include <GL/glut.h>               
static GLfloat theta[] = {0.0,0.0,0.0};
#define HEAD_HEIGHT 4.0
#define HEAD_WIDTH 4.0
#define BASE_HEIGHT 8.0
#define BASE_WIDTH 6.0
#define LOWER_LEG_HEIGHT 8.0
#define LOWER_LEG_WIDTH 2
#define UPPER_LEG_HEIGHT 8.0
#define UPPER_LEG_WIDTH 2void body(){glColor3f(0,1,0);glPushMatrix();glScalef(BASE_WIDTH, BASE_HEIGHT, BASE_WIDTH);//3.0,5.0,3.0glRotatef(theta[1], 0.0, 1.0, 0.0);glutSolidCube(2.0);glPopMatrix();
}
void head(){glColor3f(0,0,1);glPushMatrix();glTranslatef(0, (BASE_HEIGHT+HEAD_HEIGHT), 0.0);//5.0, 3.0glScalef(HEAD_WIDTH, HEAD_HEIGHT, HEAD_WIDTH);//3.0,3.0,3.0glRotatef(theta[1], 0.0, 1.0, 0.0);glutSolidCube(2.0);glPopMatrix();
}
void leftleg(){glColor3f(1,0,0);glPushMatrix();glTranslatef(-3, -(BASE_HEIGHT+HEAD_HEIGHT), 0.0);//5 + 3glScalef(UPPER_LEG_WIDTH, UPPER_LEG_HEIGHT, UPPER_LEG_WIDTH);//1.0,5.0,1.0glRotatef(theta[1], 0.0, 1.0, 0.0);glutWireCube(2.0);glPopMatrix();
}
void rightleg(){glColor3f(1,0,0);glPushMatrix();glTranslatef(3, -(BASE_HEIGHT+HEAD_HEIGHT), 0.0);//5 + 3glScalef(LOWER_LEG_WIDTH, LOWER_LEG_HEIGHT, LOWER_LEG_WIDTH);glRotatef(theta[1], 0.0, 1.0, 0.0);glutWireCube(2.0);glPopMatrix();
}
void leftarm(){glColor3f(1,1,1);glPushMatrix();glTranslatef(-7, 2.6, 0.0);glScalef(2.5, 5, 2.5);glRotatef(theta[1], 0.0, 1.0, 0.0);glutWireCube(2.0);glPopMatrix();
}
void rightarm(){glColor3f(1,1,1);glPushMatrix();glTranslatef(7, 2.6, 0.0);glScalef(2.5, 5, 2.5);glRotatef(theta[1], 0.0, 1.0, 0.0);glutWireCube(2.0);glPopMatrix();
}
void robot()
{glPushMatrix();glTranslatef(theta[2],0,0);head();body();leftleg();rightleg();leftarm();rightarm();glPopMatrix();
}
void initRendering() {glEnable(GL_DEPTH_TEST);
}
void handleResize(int w, int h) {if(h == 0)  h = 1;glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();if (w <= h) glOrtho (-50.0f, 50.0f, -50.0f, 50.0f*h/w, -10.0, 10.0);else glOrtho (-50.0f, 50.0f*w/h, -50.0f, 50.0f, -10.0, 10.0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();
}
void drawScene() {glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	robot();glutSwapBuffers();
}
void update(int value) {theta[0] += 2.0f;if (theta[0] > 360)theta[0] -= 360;theta[1] +=10.0f;if (theta[1] > 360)theta[1] -= 360;	theta[2] += 1.0f;if (theta[2] > 360)theta[2] -= 360;	glutPostRedisplay();glutTimerFunc(1000, update, value+1);
}
int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);glutInitWindowPosition(100,100);	glutInitWindowSize(500, 500);glutCreateWindow("转动的机器人");initRendering();glutDisplayFunc(drawScene);glutReshapeFunc(handleResize);glutTimerFunc(1000, update, 1); glutMainLoop();return 0;
}




这篇关于《计算机图形学》转动的机器人的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959963

相关文章

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是:

java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频) 停车管理信息系统是为了提升停车场的运营效率和管理水平而设计的综合性平台。系统涵盖用户信息管理、车位管理、收费管理、违规车辆处理等多个功能模块,旨在实现对停车场资源的高效配置和实时监控。此外,系统还提供了资讯管理和统计查询功能,帮助管理者及时发布信息并进行数据分析,为停车场的科学

动画AnimationDrawable、转动

现实开发中:很多地方都用到 点击动画的特效; 本案例本人做了三个关于“动” 画 的效果; 先上图: 总体图: A: B: 1:点击图片按钮,效果是:图片闪动; 通过在xml中定义:标签:animation-list来实现点击动画的效果;  是否循环标签:oneshot ;   时间间隔标签:duration ; 要显示的图片标签:drawable ;

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.