位置: 编程技术 - 正文

人走鸟飞之二(人走鸟不惊,出自于谁的诗句?)

编辑:rootadmin
&#;&#;

推荐整理分享人走鸟飞之二(人走鸟不惊,出自于谁的诗句?),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:人走鸟散,飞鸟走禽,鸟飞?走,人走鸟散,人走鸟飞什么意思,人走鸟不惊,出自于谁的诗句?,人走鸟飞什么意思,人走鸟散,内容如对您有帮助,希望把文章链接给更多的朋友!

//相比上一篇,这一个程序增加了视角方面的转换,我们可以从四方区观察这个运动的简单3D世界。写给和我一样的菜鸟。这些代码也比较容易懂的。

#include"stdafx.h"#define GLUT_DISABLE_ATEXIT_HACK#include <gl/glut.h>#include<time.h>#pragma comment(lib, "opengl.lib")#pragma comment(lib, "glut.lib")#pragma comment(lib, "glu.lib")#pragma comment(lib, "glut.lib")static double angle1; //翅膀的扇动角度static double angle2; //人腿的旋转角度static double walk; //人走动的速度static double fly; //鸟飞的速度static double d = 0.1; //增量static double e = 0.1; //增量static double s = 0.;//增量static double f = 0.;float g_rotateY = 0.0f; // 绕Y轴旋转变量float g_posX = 0.0f; //横向位移float g_posY = 0.0f;float g_posZ = 0.0f;int camerdire;void init(void){ glClearColor(0.0, 0.0, 0.0, 0.0); glShadeModel(GL_FLAT);}void cylinder(){ glPushMatrix(); glTranslatef(0, 0, -0.); glScalef(0., 0., 0.1); GLUquadricObj *cylinder_obj1; GLUquadricObj *cylinder_obj2; //GLUquadricObj *cylinder_obj3; //然后再初始化 cylinder_obj1 = gluNewQuadric(); cylinder_obj2 = gluNewQuadric(); //cylinder_obj3=gluNewQuadric(); //GL_COLOR_BUFFER_BIT标志用glClearColor设置的颜色清除颜色缓冲区 glColor3f(1.0, 1.0, 0.1); //glColor{}{b s i f d ub us ui}{v}(....) //画圆柱体 glPushMatrix(); glRotatef(0, 1.0, 0.0, 0.0);//绕y轴旋转的角度 gluCylinder(cylinder_obj1, 2, 2, 4, , ); gluDisk(cylinder_obj2, 0, 2, , ); glPopMatrix(); glPopMatrix();}void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glLoadIdentity(); if (camerdire==1) //从左侧观看 gluLookAt(-.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0); //设置照相机参数,照相机的位置为(0,0,5),指向(0,0,0),向上为(0,1,0) if (camerdire==0) //从前面观看 gluLookAt(0.0, 0.0, .0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0); //设置照相机参数,照相机的位置为(0,0,5),指向(0,0,0),向上为(0,1,0) if (camerdire==2) //从后面观看 gluLookAt(0.0, 0.0, -.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0); //设置照相机参数,照相机的位置为(0,0,5),指向(0,0,0),向上为(0,1,0)//----------------------画出地面------------------- glPushMatrix(); glTranslatef(-g_posX, g_posY, g_posZ&#;5); glTranslatef(-2, 6, -6); glScalef(3, 1, 2); glColor3f(1.0f, 1.0f, 1.0f); glBegin(GL_QUADS); glVertex3f(2.0f, -1.5f, 2.0f); glVertex3f(-2.0f, -1.5f, 2.0); glVertex3f(-2.0f, -1.5f, -2.0); glVertex3f(2.0f, -1.f, -2.0); glEnd(); glPopMatrix();//----------------------以上画出地面----------

//---------------------以下画出飞鸟 glPushMatrix();

glTranslatef(0, -5, 0.3); glTranslatef(fly&#;=f, angle1/&#;0.1, 0); //飞鸟身躯的上下起伏,左右移动 //一对翅膀(用两个扁长的立方体表示) glColor3f(0.7, 0.7, 0.7); glPushMatrix(); glRotatef(angle1, 0, 0, 1); glTranslatef(-0.5,0,0); glScalef(1, 0., 0.3); glutSolidCube(1.0); glPopMatrix(); glPushMatrix(); glRotatef(-angle1, 0, 0, 1); glTranslatef(0.5, 0, 0); glScalef(1, 0., 0.3); glutSolidCube(1.0); glPopMatrix(); //一个身躯(用一个立方体表示) glColor3f(1.0, 0.0, 0.0); glPushMatrix(); glScalef(0.3,0.3,0.3); glutSolidCube(1.0); glPopMatrix();

人走鸟飞之二(人走鸟不惊,出自于谁的诗句?)

glPopMatrix(); //----------------------以上为飞鸟的动画

glColor3f(0, 1, 0);//-----------------------下面画出一个人走路 glPushMatrix(); glRotatef(-, 0, 0, 1); glTranslatef(-4,walk&#;=s,0); //两腿的前进 glScalef(2.0, 2.0, 2.0); //调整机器人的大小 //---------------------下面是两腿摆动的动画---------- glPushMatrix(); glColor3f(1.0, 0.0, 1.0); glRotatef(angle2, 0, 0, 1); glTranslatef(-0.5, 0, 0); glScalef(1, 0., 0.1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix(); glRotatef(, 0, 0, 1); glRotatef(-angle2, 0, 0, 1); glTranslatef(0.5, 0, 0.3); glScalef(1, 0., 0.1); glutSolidCube(1.0); glPopMatrix(); cylinder(); glPopMatrix();//-----------------------以上为人走动的动画-------------- glFlush();}void reshape(int w,int h){ glViewport(0, 0, (GLsizei)w, (GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, .0); glMatrixMode(GL_MODELVIEW);}void myIdle(void){ angle1 -= d; if (angle1 <-) d = -d; else if (angle1>) d = -d; angle2 -= e; if (angle2 <-) e = -e; else if (angle2>) e = -e;

if (walk <-3) s = -s; else if (walk>3) s = -s;

if (fly < -5) f = -f; else if (fly>5) f = -f; display();}void ProcessSpecialKeyboead(int key, int x, int y)//转换摄像头视角的方向{ if (key == GLUT_KEY_F1) { camerdire = 0; } if (key == GLUT_KEY_F2) { camerdire = 1; } if (key == GLUT_KEY_F3) { camerdire = 2; }}void KeyboardFunc(unsigned char key, int x, int y){ switch (key) {//---------------------控制地面的移动---------------------------- case 'A': case 'a': // 向左移动 g_posX -= 0.f; if (g_posX < -4.0f) { g_posX = -4.0f; } break;

case 'D': case 'd': // 向右移动 g_posX &#;= 0.f; if (g_posX > 4.0f) { g_posX = 4.0f; } break; case 'W': case 'w': // 向上移动 g_posY -= 0.f; break; case 'S': case 's': // 向上移动 g_posY &#;= 0.f; break; case 'F': case 'f': // 向前移动 g_posZ -= 0.f; break; case 'B': case 'b': // 向前移动 g_posZ &#;= 0.f; break; default: break; }}

int main(int argc, char * *argv){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(, ); glutInitWindowPosition(, ); glutCreateWindow(argv[0]); init(); glutDisplayFunc(display); glutIdleFunc(myIdle); glutReshapeFunc(reshape); glutKeyboardFunc(KeyboardFunc); glutSpecialFunc(ProcessSpecialKeyboead); glutMainLoop(); return 0;}

OpenGL学习-直线&三角形绘制 一、画线(1)在glBegin中使用GL_LINES绘制图元时,每两个顶点会连成一条直线,例如:glBegin(GL_LINES);glVertex3f(.0f,0.0f,0.0f);glVertex3f(.0f,.0f,0.0f);glVertex3f(-5

OpenGL,Android注意事项初始化顺序 NullPointer BUG:Causedby:java.lang.IllegalStateException:setRendererhasalreadybeencalledforthisinstance.或者NullPointer错误解决方法:把setEGLContextClientVersion(2);挪到setRenderer()前面。方法的

Qt_OpenGL:雾程序小测 Qt_OpenGL:雾程序小测//.h#ifndefFOGTEST_H#defineFOGTEST_H#includeQWidget#includeQtOpenGLclassFogTest:publicQGLWidget{Q_OBJECTpublic:FogTest(QWidget*parent=0);~FogTest();protected:voidinitializeG

标签: 人走鸟不惊,出自于谁的诗句?

本文链接地址:https://www.jiuchutong.com/biancheng/373214.html 转载请保留说明!

上一篇:OpenGL学习03-画点&按键处理(opengl中点画圆算法)

下一篇:OpenGL学习04-直线&三角形绘制(opengl画直线)

  • 免税收入对应的成本费用可以扣除吗
  • 需要出口
  • 企业季度所得税申报表怎么填写
  • 邮政电信业务差距大吗
  • 新准则下对亏损的规定
  • 出借包装物收取的押金
  • 联营企业属于企业吗
  • 银行对账单由谁去取
  • 社保税款所属期限什么意思
  • 专票遗失后可以作废吗
  • 员工本地住宿费会计分录
  • 股东个人为公司付的钱
  • 销售金银首饰交什么税
  • 虚开增值税普通发票罪的立案标准
  • 土增税清算地下室怎么扣除
  • 调整增值税误差的原因
  • 不能抵扣的进项税怎么做账
  • 发票销项负数的会计分录怎么做?
  • 提成工资可以扣发吗?
  • 纳税人首次办税补充信息表怎么填
  • 2016年的发票可以用到什么时候
  • 企业每季度预缴增值税
  • 缴纳的社保费可以退吗怎么退
  • 高新企业财务做账要求
  • 当月费用下月付款
  • 社保基数填错了 可以退款吗
  • 笔记本怎么清理D盘
  • 如何升级mac系统到10.12
  • 广告公司文化事业费怎么交
  • 仙鹤草的功效与作用与主治功能
  • 收到租赁发票会计分录怎么做
  • php数组函数大全
  • 真三国在哪下载
  • 支付国外佣金税率是多少
  • 融资租赁业务的特点
  • 如何确定赞助对象
  • 经营性应收项目的计算公式
  • 电子承兑可以提前贴现吗
  • 即插即用是什么意思?
  • 外购商品用于赠送增值税可以抵扣么
  • 基于个人同意处理个人信息的个人什么撤回其同意
  • 收付实现制与权责发生制的例题
  • 租金计入主营业务成本吗
  • python科学计算库有哪些
  • 试生产期间发生事故后重新
  • 如何利用sql进行数据传输
  • 免征水利建设基金条件
  • 纯加工企业账务处理
  • 劳务费入什么费用
  • 已经抵扣进项税转出怎么做分录?
  • 高速公路过路费可以抵扣进项税吗
  • 小规模纳税人减按1%政策
  • 调表不调账都有什么情况
  • 固定资产房屋拆除后如何做帐务处理
  • 注册公司好麻烦
  • 税务报表工会经费是按什么交了
  • 如何判断应当预见
  • 结转销售成本怎么操作
  • sqlcipher c#
  • centos6.5安装教程中文
  • win8系统笔记本出现意外错误
  • 新装的ubuntu18没有网络
  • mac safari使用技巧
  • 怎么清理win7
  • ct.dll
  • xp如何改windows7
  • nvsvc.exe - nvsvc是什么进程 有什么用
  • pcc是什么文件
  • win7共享文件设置
  • 深度技术的系统好不好
  • win10教育版登录
  • cocos2dx游戏案例
  • express.json()
  • unity3d如何导入图片
  • unity的vs
  • unity3d游戏开发笔记本推荐
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • 江苏税务开票申报操作
  • 网上报个人所得税
  • 进项税小于销项税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设