转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
NeHe的opengl教程delphi版(7)----滤波         ★★★★

NeHe的opengl教程delphi版(7)----滤波

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2418 更新时间:2009/4/23 18:37:25
p;     // 法线向上
   glTexCoord2f(0.0, 1.0);
   glVertex3f(-1.0, 1.0, -1.0);         // 纹理和四边形的左上
   glTexCoord2f(0.0, 0.0);
   glVertex3f(-1.0, 1.0, 1.0);          // 纹理和四边形的左下
   glTexCoord2f(1.0, 0.0);
   glVertex3f(1.0, 1.0, 1.0);           // 纹理和四边形的右下
   glTexCoord2f(1.0, 1.0);
   glVertex3f(1.0, 1.0, -1.0);          // 纹理和四边形的右上
   // 底面
   glNormal3f(0.0, -1.0, 0.0);          // 法线朝下
   glTexCoord2f(1.0, 1.0);
   glVertex3f(-1.0, -1.0, -1.0);        // 纹理和四边形的右上
   glTexCoord2f(0.0, 1.0);
   glVertex3f(1.0, -1.0, -1.0);         // 纹理和四边形的左上
   glTexCoord2f(0.0, 0.0);
   glVertex3f(1.0, -1.0, 1.0);          // 纹理和四边形的左下
   glTexCoord2f(1.0, 0.0);
   glVertex3f(-1.0, -1.0, 1.0);         // 纹理和四边形的右下
   // 右面
   glNormal3f(1.0, 0.0, 0.0);           // 法线朝右
   glTexCoord2f(1.0, 0.0);
   glVertex3f(1.0, -1.0, -1.0);         // 纹理和四边形的右下
   glTexCoord2f(1.0, 1.0);
   glVertex3f(1.0, 1.0, -1.0);          // 纹理和四边形的右上
   glTexCoord2f(0.0, 1.0);
   glVertex3f(1.0, 1.0, 1.0);           // 纹理和四边形的左上
   glTexCoord2f(0.0, 0.0);
   glVertex3f(1.0, -1.0, 1.0);          // 纹理和四边形的左下
   // 左面
   glNormal3f(-1.0, 0.0, 0.0);          // 法线朝左
   glTexCoord2f(0.0, 0.0);
   glVertex3f(-1.0, -1.0, -1.0);        // 纹理和四边形的左下
   glTexCoord2f(1.0, 0.0);
   glVertex3f(-1.0, -1.0, 1.0);         // 纹理和四边形的右下
   glTexCoord2f(1.0, 1.0);
   glVertex3f(-1.0, 1.0, 1.0);          // 纹理和四边形的右上
   glTexCoord2f(0.0, 1.0);
   glVertex3f(-1.0, 1.0, -1.0);         // 纹理和四边形的左上
   glEnd();

   xrot := xrot + xspeed;               // xrot 增加 xspeed 单位
   yrot := Yrot + yspeed;               // yrot 增加 yspeed 单位
End;

//现在转入WinMain()主函数。
               //我们将在这里增加开关光源、旋转木箱、切换过滤方式以及将木箱移近移远的控制代码。
               //在接近WinMain()函数结束的地方你会看到SwapBuffers(hDC)这行代码。
               //然后就在这一行后面添加如下的代码。
               //代码将检查L键是否按下过。
               //如果L键已按下,但lp的值不是false的话,意味着L键还没有松开,这时什么都不会发生。
               SwapBuffers(h_DC);       // 交换缓存 (双缓存)

               If (keys[ord(''''L'''')] And Not lp) Then
                  Begin
                     //如果lp的值是false的话,
                     //意味着L键还没按下,或者已经松开了,接着lp将被设为TRUE。
                     //同时检查这两个条件的原因是为了防止L键被按住后,
                     //这段代码被反复执行,并导致窗体不停闪烁。
                     //lp设为true之后,计算机就知道L键按过了,
                     //我们则据此可以切换光源的开/关:布尔变量light控制光源的开关。
                     lp := true;        // lp 设为 TRUE
                     light := Not light; // 切换光源的 TRUE/FALSE
                     If Not light Then  // 如果没有光源
                        glDisable(GL_LIGHTING) //禁用光源
                     Else               // Otherwis
                        glEnable(GL_LIGHTING); //启用光源
                  End;
               If Not keys[ord(''''L'''')] Then //L键松开了么?
                  lp := FALSE;          // 若是,则将lp设为FALSE

               //然后对"F"键作相似的检查。
               //如果有按下"F"键并且"F"键没有处于按着的状态或者它就从没有按下过,
               //将变量fp设为true。这意味着这个键正被按着呢。
               //接着将filter变量加一。如果filter变量大于2
               //(因为这里我们的使用的数组是texture[3],大于2的纹理不存在),
               //我们重置filter变量为0。
               If (keys[ord(''''F'''')] And Not fp) Then // F键按下了么?
                  Begin
                     fp := TRUE;        // fp 设为 TRUE
                     inc(filter);       // filter的值加一
                     If filter > 2 Then // 大于2了么?
                        filter := 0;    // 若是重置为0
                  End;
               If Not keys[ord(''''F'''')] Then //F键放开了么?
                  fp := FALSE;          // 若是fp设为FALSE

               //这四行检查是否按下了PageUp键。若是的话,减少z变量的值。这样DrawGLScene函数中包含的glTranslatef(0.0f,0.0f,z)调用将使木箱离观察者更远一点。
               If keys[VK_PRIOR] Then   //PageUp按下了?
                  z := z - 0.02;        // 若按下,将木箱移向屏幕内部。
               //接着四行检查PageDown键是否按下,若是的话,增加z变量的值。这样DrawGLScene函数中包含的glTranslatef(0.0f,0.0f,z)调用将使木箱向着观察者移近一点。
               If keys[VK_NEXT] Then    // PageDown按下了么?
                  z := z + 0.02;        //若按下的话,将木箱移向观察者。

               //现在检查方向键。按下左右方向键xspeed相应减少或增加。
               //按下上下方向键yspeed相应减少或增加。
         &

上一页  [1] [2] [3] [4]  下一页


[系统软件]InstallShield Express for delphi制作安装程序定…  [常用软件]InstallShield Express制作Delphi数据库安装程序
[Delphi程序]为什么选择Delphi.Net ?  [Delphi程序]《关于VisiBroker For Delphi的使用》(4)
[Delphi程序]Delphi 程序员代码编写标准指南  [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro…
[Delphi程序]Borland Delphi 9 的新特性  [Delphi程序]Delphi 键盘码表
[Delphi程序]Chuck Jazdzewski的离开意味着Delphi的终结吗?  [Delphi程序]Delphi Access violations 问题的解决之道
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台