2012年3月18日
摘要: #includeusing namespace std;#define MAXSIZE 10000class QElemType{public:int x,y;};class SQueue{public:int len;int front;//头指针,若队列不空,指向队列头元素int rear;//尾指针,若队列不空,指向队列尾元素的下一个位置QElemType base[MAXSIZE];int InitQueue();//初始化一个队伍int QueueLength();//求队伍长度int EnQueue(QElemType e);//插入元素为e的新的队尾元素int DeQueue(Q 阅读全文
posted @ 2012-03-18 23:37 Bester 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 因为最近想做的一个东西和区间统计有关,心血来潮玩了下线段树。 #includeusing namespace std;#define MAXNUMBER 1leftIndex=0;treeRoot->rightIndex=this->cowNumber-1;//Compare the Left Child and Right Child resultFindTreeMinAndMaxValue(treeRoot);return;}void SegmentTree::FindTreeMinAndMaxValue(TreeNode *tNode){//See if the node e 阅读全文
posted @ 2012-03-18 15:34 Bester 阅读(179) 评论(0) 推荐(0) 编辑
  2012年3月15日
摘要: .NET Framework 4.5.NET Framework 3.5.NET Framework 3.0 11 out of 17 rated this helpfulRate this topicThe WPF data templating model provides you with great flexibility to define the presentation of your data. WPF controls have built-in functionality to support the customization of data presentation. 阅读全文
posted @ 2012-03-15 12:58 Bester 阅读(220) 评论(0) 推荐(0) 编辑
  2012年3月8日
摘要: 关键利用KeyValuePair。 定义一个Dictionary: Dictionary aggUpGroupPointDic = new Dictionary(); 遍历它: foreach (KeyValuePairkeyValuePair inaggDownGroupPointDic) { Console.WriteLine(“Point{0}’s position is ({1},{2})”,keyValuePair.Key,keyValuePair.Value.X,keyValuePair.Value.Y); } 阅读全文
posted @ 2012-03-08 17:16 Bester 阅读(141) 评论(0) 推荐(0) 编辑
  2012年2月29日
摘要: 如果Grid是页面中的根元素,Grid不会根据子元素的尺寸来改变大小,在下面的例子里,Grid会充满整个页面。 如果Grid包含在一个Canvas中….上面的例子代码此时,Grid会根据子元素的尺寸改变自己的大小如果 不定义Width和Height,的位置会不可捉摸中的如果不指定Width/Height或HorizontalAlignment/VerticalAlignment,会自动充满Grid,即 HorizontalAlignment/VerticalAlignment="Stretch" 阅读全文
posted @ 2012-02-29 09:46 Bester 阅读(107) 评论(0) 推荐(0) 编辑
  2012年2月22日
摘要: C# 3新增了关键字“var”。在编译器能明确判断变量的类型时,它允许对本地类型进行推断。然而,对于何时应该使用它却存在某些争论。AD: C# 3新增了关键字“var”。在编译器能明确判断变量的类型时,它允许对本地类型进行推断。然而,对于何时应该使用它却存在某些争论。 开发IDE工具的公司ReSharper的Ilya Ryzhenkov总结了使用var的一些好处 : 1. 它有利于更好地为本地变量命名。2. 它有利于设计更好的API。3. 它促使对变量进行初始化。4. 它消除了代码的混乱。5. 它不需要using指示符。RSS Bandit的Dare Obasanjo对此则不敢苟同。由于var 阅读全文
posted @ 2012-02-22 18:04 Bester 阅读(254) 评论(0) 推荐(0) 编辑
  2012年2月9日
摘要: 这里讨论的是List的Contains方法,Contains方法默认调用类型T的Equals方法而Object类的Equals方法支持值类型的比较和引用类型的比较,即如果继承自Object的类是引用类型的(C#中的所有类都继承自Object类),那么该类的Equals就比较是否引用了同一个对象。相反Struct结构体是值类型的,它的Equals方法使用值类型比较。C#中的String类比较特殊,唯独此类不符合上面的规定。虽然String为引用类型,但比较时使用值类型的比较方法。string s = new string('d',2);string x = "dd&qu 阅读全文
posted @ 2012-02-09 20:05 Bester 阅读(1216) 评论(0) 推荐(0) 编辑
  2011年12月21日
摘要: 这里使用ComputeShader做拾取,主要为了熟悉下ComputeShader,为自己后面一个项目做准备。拾取基本原理前面博客也讲了,都差不多,将射线从屏幕坐标系转换到物体局部坐标系,然后再判断三角形是否被射线射中。主要是代码的实施上不一样,这里我尝试并行地通过ComputeShader,由线程i来负责判断三角形i是否被选中。 HLSL的代码://=========================================//computeshaderbasetechnology//======================================#defineBLOCK. 阅读全文
posted @ 2011-12-21 18:28 Bester 阅读(412) 评论(0) 推荐(0) 编辑
  2011年12月20日
摘要: 最近由于需要在GPU上做排序,因为GPU的并行性,所以需要一个并行的排序算法。而BitonicSort双调排序是一个非常适合并行化的排序算法,其在《算法导论》的排序网络一章对其基本原理做了描述与证明。有兴趣大家可以看看。 作为个人的一个学习总结,这里只是对其性质做些简单介绍,以及它算法基本思想和几个重要的步骤。如果需要了解BitonicSort更加详细的理论证明,可以参考《算法导论》。 首先BitonicSort的算法复杂度为O(n(logn)^2),看到这里大家会问比快排O(nlogn)要慢啊,干嘛要用它?但是它的n在并行机(比如GPU)上可以并行化掉n,那么复杂度就变为O( (logn.. 阅读全文
posted @ 2011-12-20 22:04 Bester 阅读(1703) 评论(0) 推荐(0) 编辑
  2011年12月12日
摘要: 很多人使用Effect框架基本针对渲染功能,典型如:technique11meshTech{passp0{SetVertexShader(CompileShader(vs_4_0,VS_DRAW()));SetGeometryShader(NULL);SetPixelShader(CompileShader(ps_4_0,PS_DRAW()));SetRasterizerState(rsSolid);SetDepthStencilState(EnableDepthWrite,0);}} 在Directx里面通过Apply,DrawIndexed等来调用。voidMesh::DrawMesh(. 阅读全文
posted @ 2011-12-12 15:19 Bester 阅读(269) 评论(0) 推荐(0) 编辑