- 博客(21)
- 收藏
- 关注
原创 转 可变参数的简单实用方法--掌握此便足矣
#include "stdio.h"#include "stdarg.h" void show(const char * format,...); int main(){ show("%04d%02d%02d %02d:%02d:%02d [%s:%d] %s\n",2011,4,21,15,33,20,__FILE__,__LINE__,"this is a test"); getcha...
2011-04-22 10:32:23 119
第九课:移动图像
欢迎进入第九课。到现在为止,您应该很好的理解OpenGL了。您已经学会了设置一个OpenGL窗口的每个细节。学会在旋转的物体上贴图并打上光线以及融合(透明)处理。这一课应该算是第一课中级教程。您将学到如下的知识:在三维场景中移动位图,并去除位图上的黑色象素(使用融合)。接着为黑白纹理上色,最后您将学会创建丰富的色彩,并把上过不同色彩的纹理相互融合,得到简单的动画效果。 我们要在上一课的代码...
2010-10-31 15:16:21 144
第八课:融合
OpenGL中的绝大多数特效都与某些类型的(色彩)融合有关。融合的定义为,将某个象素的颜色和已绘制在屏幕上与其对应的象素颜色相互结合。至于如何结合这两个颜色则依赖于颜色的alpha通道的分量值,以及/或者所使用的融合函数。alpha通常是位于颜色值末尾的第4个颜色组成分量。前面这些课我们都是用GL_RGB来指定颜色的三个分量。相应的GL_RGBA可以指定alpha分量的值。更进一步,我们可以...
2010-10-31 14:42:13 166
原创 QTimerEvent
1. QTimerEvent startTimer(5); void timerEvent(QTimerEvent *); void NeHeWidget::timerEvent(QTimerEvent *) { updateGL(); } 2. QTime SLOT QTimer *t; t = new QTimer(this); ...
2010-10-28 16:28:39 225
第七课:光照和键盘
这一课我会教您如何使用三种不同的纹理滤波方式。教您如何使用键盘来移动场景中的对象,还会教您在OpenGL场景中应用简单的光照。这一课包含了很多内容,如果您对前面的课程有疑问的话,先回头复习一下。进入后面的代码之前,很好的理解基础知识十分重要。 我们要在第一课的代码上进行改动就可以了。 我们将要增加一个loadGLTextures()函数来处理有关纹理操作的。我们将增加一些变量,稍后我们对...
2010-10-28 14:32:51 92
原创 第六课:纹理映射
学习texture map纹理映射(贴图)有很多好处。比方说您想让一颗导弹飞过屏幕。根据前几课的知识,我们最可行的办法可能是很多个多边形来构建导弹的轮廓并加上有趣的颜色。使用纹理映射,您可以使用真实的导弹图像并让它飞过屏幕。您觉得哪个更好看?照片还是一大堆三角形和四边形?使用纹理映射的好处还不止是更好看,而且您的程序运行会更快。导弹贴图可能只是一个飞过窗口的四边形。一个由多边形构建而来的导弹却...
2010-10-28 14:23:13 341
原创 第五课:3D空间
在上一课的内容上作些扩展,我们现在开始生成真正的三维对象,而不是象前两节课中那样在三维世界中的二维对象。我们给三角形增加一个左侧面,一个右侧面,一个后侧面来生成一个金字塔(四棱锥)。给正方形增加左、右、上、下及背面生成一个立方体。 我们混合金字塔上的颜色,创建一个平滑着色的对象。给立方体的每一面则来个不同的颜色。 其实只需在上节课的代码上增加几行就可以了。 NeHeWidg...
2010-10-28 11:20:46 109
原创 第四课:旋转
上一课中我教给您三角形和四边形的着色。这一课我将教您如何将这些彩色对象绕着坐标轴旋转。其实只需在上节课的代码上增加几行就可以了。我们将在NeHeWidget类中增加timerEvent成员函数和两个变量来控制这两个对象的旋转。它们是浮点类型的变量,使得我们能够非常精确地旋转对象。浮点数包含小数位置,这意味着我们无需使用1、2、3...的角度。你会发现浮点数是OpenGL编程的基础。新...
2010-10-28 10:22:39 125
原创 第三课:添加颜色
上一课中我教给您三角形和四边形的绘制方法。这一课我将教您给三角形和四边形添加两种不同类型的着色方法。使用单调着色(Flat coloring)给四边形涂上固定的一种颜色。使用平滑着色(Smooth coloring)将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合。我们只要修改第二课中的NeHeWidget类中的paintGL()函数就可以了。 nehewidget.c...
2010-10-28 09:41:40 125
原创 第二课:多边形
上一课中,我教您如何创建一个OpenGL窗口。这一课中,我将教您如何创建三角形和四边形。 我们讲使用GL_TRIANGLES来创建一个三角形,GL_QUADS来创建一个四边形。 我们只要修改第一课中的NeHeWidget类中的paintGL()函数就可以了。 nehewidget.cpp /*NeHeWidget类 *由nehewidget.cpp 展开。 */ vo...
2010-10-27 17:24:16 145
原创 第一课:OpenGL窗口
nehewidget.h /* NeHeWidget类 * 这就是我们继承QGLWidget类得到的OpenGL窗口部件类。 * 由nehewidget.h 展开。 */ #include <QtOpenGL> class NeHeWidget : public QGLWidget { /*因为QGLWidget类被...
2010-10-27 17:03:17 207
原创 mp3 图片提取
#ifdef HAVE_CONFIG_H# include <config.h>#endif #include "id3/id3lib_streams.h"#include <stdlib.h> #include <id3/tag.h>#include <id3/misc_support.h> using std::cout;using...
2010-01-28 20:11:55 163
原创 python求素数
10000以内的素数: [x for x in range(2,10000) if not [i for i in range(2,x) if x % i == 0 ] ] reduce( lambda s, x: s+ ([x] if all([x %i for i in s]) else []), ...
2010-01-08 09:52:13 135
原创 project欧拉第七题
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. What is the 10001st prime number? 寻找第10001个素数(prime number)。
2010-01-06 16:10:32 71
原创 project欧拉第六题
The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square of the sum of the first ten natural numbers is, (1 + 2 + ... + 10)2 = 552 = 3025 Hence the ...
2010-01-06 14:52:07 86
原创 project欧拉第五题
2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest number that is evenly divisible by all of the numbers from 1 to 20? ...
2010-01-06 10:08:26 76
原创 project欧拉第四题
http://projecteuler.net/index.php?section=problems&id=4 projecteuler.net第四题 A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit number...
2010-01-06 09:41:34 85
原创 project欧拉第三题
http://projecteuler.net/index.php?section=problems&id=3 projecteuler.net第三题 The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? ...
2010-01-05 18:24:49 82
原创 project欧拉第二题
http://projecteuler.net/index.php?section=problems&id=2 projecteuler.net第二题 Find the sum of all the even-valued terms in the Fibonacci sequence which do not exceed four million. 求Fibonacc...
2010-01-05 18:23:38 75
原创 project欧拉第一题
http://projecteuler.net/index.php?section=problems&id=1 projecteuler.net第一题 Add all the natural numbers below one thousand that are multiples of 3 or 5. 求1000以下的能被3或5整除的整数之和. 答案:233168 pytho...
2010-01-05 18:18:34 87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人