摘要: Direct3D中的例子系统出现了很多故障,最后才发现是例子刷新的函数中particle->update( timeDelta/20);timeDelta太大,使得例子的生命_age在每一次增长的时候大大超过生命周期_lifeTime,所以粒子的显示出现问题,曾经还出现过显卡驱动停止响应的情况。断断续续的DEBUG过程中,我发现断点debug已经不能让我清晰的分析程序了,于是我利用重定向输出流(我的另一篇随笔http://www.cnblogs.com/Kelvinshere/archive/2012/04/12/iostreamRedirection.html)把粒子的属性Attrib 阅读全文
posted @ 2013-04-09 21:55 KelvinDesus 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 例如函数:int add(int a, int b, int c ){return a+b+c;}函数指针 int (*FuncPtr)(int,int,int);声明的方法就是将指针的名字FuncPtr放在函数名称对应的位置上建议用关键字typedef: typedef int (*FuncPtr)(int,int,int); ,以后可以直接定义该函数指针 FuncPtr fp;------下面是复杂函数指针的测试代码:#include <iostream>using std::cout;//demo for FP2 //FP1 (参数为float)(返回值为int) typed 阅读全文
posted @ 2013-04-01 11:17 KelvinDesus 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 得闲无聊想到了以后去工作去面试,由面试想到了面试题,想到了一些大数据排序的题目,又想到了桶排序于是练练手,用C++写一下桶排序的大致的代码:有些防手误的调试代码和注释,不影响阅读#include <iostream>using namespace std;// Bucket Sortingint a[]={1,255,8,6,25,47,14,35,58,75,96,158,657};const int len = sizeof(a)/sizeof(int);int bucket[10][len+1]; //用bucker[i][len]存放每行的个数void initBucket 阅读全文
posted @ 2013-03-24 11:21 KelvinDesus 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 在地形绘制的时候,把地形中每一个顶点的纹理位置在[0,64]的区间内递增,使得场景的纹理有移动的效果。想起以前看过的一点小技巧,利用%操作符可以让值在固定区间内:#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){ int a = -3,b = 7; // [-3,7] int i =1; srand((unsigned)time(NULL)); while(i<=100){ printf("%d",rand()%(b-a + 1)+a); i%10==0 阅读全文
posted @ 2013-03-17 19:18 KelvinDesus 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 单件模式就是让类只有一个实例的方法,这样做在特定的场合会有特定的好处,“比方说:线程池、缓存、对话框、处理偏好设置和注册表的对象、日志对象、充当打印机、显卡等设备的驱动程序的对象。”什么都不用说,下面有三个版本的Singleton单件类,是参照HEAD FIRST设计模式利用C++实现的单件模式,前两个会有点问题,第三个是最优的#include <iostream>using std::cout;//1.需要时才实例化 ,多线程下会创建多个单件实例class Singleton{private: static Singleton* uniqueSingleton;public: s 阅读全文
posted @ 2013-03-15 14:04 KelvinDesus 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 软工的课程安排有一大堆让我没有兴趣对我没有作用的课程,早知道大二的时候报动漫方向就好。大一的课程:C,C++,大学物理,高等数学,军事理论,毛思想,计算机导论,线性代数,军事理论,形式政策,离散数学大二的课程:数据结构,数据库,马克思,概率论,教育心理学,模电数电,UML,操作系统,软件测试,算法,软件工程,C#,Java,软件体系,单片机这个学期:PLD、EDA,asp.net,现代教育技术,设计模式,Linux,网络安全,计算机英语,计算方法我认为应该的学习内容: 学习中:DirectX 9.0,C++,设计模式,Lua,Windows程序设计, 待学习:(多线程、Socke... 阅读全文
posted @ 2013-03-10 19:56 KelvinDesus 阅读(336) 评论(0) 推荐(0) 编辑
摘要: Java实现的工厂模式中,factory = (EFactory)XMLUtil.getBean();这句代码中调用XML配置文件中的getBean函数,实现从XML配置文件中读取类的名字,创建该类的对象,最后返回给调用getBean()方法的Java程序中。这是Java中的反射机制(Java Reflection),在JDK中还提供了java.lang.reflect包,里面封装了一些其他与反射相关的类。“通过引入DOM和反射机制后,可以再XML Util中实现读取XML文件并根据存储在XML文件中的类名获取对应的对象。”import javax.xml.parsers.*;import o 阅读全文
posted @ 2013-03-06 23:45 KelvinDesus 阅读(1390) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂 阅读全文
posted @ 2013-03-06 21:56 KelvinDesus 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 利用工厂模式的设计方法,为装饰者模式创建对象,写了个简单的字符串分割#include <string>#include <iostream>#include <vector>using namespace std;void substring( string originString,vector<string> &splittedString ){ int begin = 0; size_t len = originString.length(); for(int i = 0;i<=len;i++){ if(originStrin 阅读全文
posted @ 2013-03-04 21:32 KelvinDesus 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 看下面代码class Test{}; class Test2{public:Test2(Test *t){}};int main(){Test test();//把定义一个对象 “Test test;” 写成 “Test test();”函数声明了!Test2 test2(&test);//return 0;}Dev-cpp的提示信息: no matching function for call to `Test2::Test2(Test (*)())'VC的提示信息: 不能将参数 1 从“Test(__cdecl *)(void)”转换为“Test *”.---“T... 阅读全文
posted @ 2013-03-03 10:09 KelvinDesus 阅读(171) 评论(0) 推荐(0) 编辑