- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 TypeScript数据结构-大顶堆与小顶堆
熟悉数据结构的同学都知道,堆排序是一种利用堆数据结构而设计的算法,它的最好最差和平均时间复杂度都是O(nlogn),但同时它也是一种不稳的排序算法。本篇内容记录一下用TypeScript来实现堆排序的代码实现。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。这里我们用TS自带的数组来存储数据,在每次插入新数据时进行向下调整操作。而在弹出数据时,对顶部的数据进行下移操作,代码具...
2021-08-10 16:15:31
352
原创 ROS环境搭建
中文慕课:https://www.icourse163.org/learn/ISCAS-1002580008#/learn/announce配套教材:https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163配套源码:https://github.com/DroidAITech/ROS-Academy-for-Beginners...
2020-04-17 17:31:43
384
翻译 Tutorial 8:Scaling Transformation
Scaling TransformationBackground缩放变换非常的简单,它用于增加或者缩小物体的大小。比如说,当你对同一个模型(大小不同却完全一致)生成一些不同的物体,或者你想让世界中的物体大小保持一致的时候,你可能会想做缩放处理。在前面的例子,我想直接在三个坐标轴缩放顶点位置,但是有时候你只能在一个或两个坐标轴进行缩放,这使得模型会变厚或变薄。 展开变换矩阵非常的复杂。我们从单位矩阵
2015-06-22 08:00:04
647
翻译 Tutorial 7 Rotation Transformation
本文源自:http://ogldev.atspace.co.uk/www/tutorial07/tutorial07.html[tor]Rotation TransformationBackground我们要讲的下一个变换是旋转变换,给定一个角度和点,随后使点绕着其中一个轴进行旋转。我们经常改变X、Y和Z红的其中两个,另外一个则保持不变。这样一来,点走过的路径会在三个主要的平面上:XY(绕着Z轴旋转
2015-06-21 19:08:17
635
翻译 Tutorial 6:Translation Transformation
本文源自:http://ogldev.atspace.co.uk/www/tutorial06/tutorial06.
2015-06-21 13:53:27
710
翻译 Tutorial 5: Uniform Variables
本文源自:http://ogldev.atspace.co.uk/www/tutorial05/tutorial05.htmlUniform VariablesBackgroundSource walkthruUniform VariablesBackground我们将在这个教程中看到新的着色器变量类型-Uniform变量。Attribute和uniform变量的区别是,前者在整个绘制调用的时候
2015-06-19 21:50:03
579
翻译 Tutorial 4: Shaders
本文源自:http://ogldev.atspace.co.uk/www/tutorial04/tutorial04.htmlTutorial 4 ShadersBackgroundSource walkthruTutorial 4: ShadersBackground我们用着色器实现了从这个教程往后的所有效果和技术。在某种程度上,你可以认为这是一种倒退,因为大多数3D功能,原来是由固定管线或者
2015-06-19 08:35:36
517
翻译 Tutorial 3: First Triangle
First Triangle本文源自:http://ogldev.atspace.co.uk/www/tutorial03/tutorial03.htmlFirst TriangleBackgroundSource walkthruBackgroundSource walkthru这个教程非常的简短。我们可以简单的扩展前一个教程,使其画出一个三角形。 在这个教程中我们又一次使用到了标准方盒。那
2015-06-18 10:10:15
397
翻译 Tutorial2 Hello dot!
Hello dot!background这是我们第一次遇到GLEW,OpenGL的扩展库。GLEW帮助你解决管理OpenGL扩展上伴随而至的一些头痛的问题。一旦(GLEW)初始化,它将查询你所在平台所有可用的扩展并动态的载入,通过调用一个头文件便能够提供访问。 在这个教程中我们将第一次见识到顶点缓冲对象(VBOs)的用法。正如名字所暗示的一样,它们被用作保存一些顶点。那些你想使之可视化的3D世界物
2015-06-17 23:35:25
498
原创 学习笔记一
画一个三矩形 1,生成vertex buffer//三角形顶点信息 static const GLfloat g_vertex_buffer_data[] = { -1.0f/2, -1.0f/2, 0.0f, 1.0f/2, -1.0f/2, 0.0f, 1.0f/2, 1.0f/2, 0.0f, -1.0f/2,
2015-06-11 11:22:03
359
原创 atomic_add_unless小记
上面为atomic_add_unless函数的实现在arch/arm/include/asm/atomic.h下面作用是将新值存入atomic_t类型的变量,并把变量的旧值返回。函数会事先判断第二个参数是否与传入atomic_t的值是否相同,如果不同的话需要把a和传入的atiomi_t的值相加。由于cmpxchg函数可能并不会交换成功,所以需要反复检查是否存入并执行cmpxcg函数。
2015-05-05 10:42:56
2725
原创 cocos2d-x plist中的部分字段分析
plist文件在cocos2d-x中相当的常见,能够直接导入CCSpriteFrameCache中,极大的方便了CCSpriteFrame的取用。下面用Xcode打开一个plist:上面列出一系列的图片列表,展开后就有一些信息,现在选取其中一个图片信息进行分析而原来的大图是这样的左上角那个图片就是要分析的图片frame{{2,2},{150,44}}代表
2014-07-31 16:27:54
651
原创 简单的UTF8 UNICODE之间的转换
使用wstring#include #include string>#include #include #include int main(int argc, char *argv[]){ std::wstring str = L"123,我是谁?我爱钓鱼岛!"; std::wstring_convert> conv; std
2014-04-09 09:36:15
545
转载 BMP位图读取部分代码
#define WIDTHBYTES(bits) (((bits)+31)/32*4) BITMAPFILEHEADER fileHeader; BITMAPINFOHEADER infoHeader; tagRGBQUAD *tagRgb; FILE* pfin =fopen("liu.bmp","rb"); //Read the Bitmap f
2014-03-04 09:37:13
728
转载 实用模板
templatetypename T>inlinevoid SafeDelete(T*&p){ delete p; p = 0; }templatetypename T>inlinevoid SafeDeleteArray(T*&p){ delete[] p; p = 0; }template typename T>inline voidUnus
2014-01-17 16:29:03
535
原创 Opengl学习笔记一
#include#include #define FREEGLUT_STATIC#include GLBatch triangleBatch;GLShaderManager shaderManger;void ChangeSize(int w,int h){ /* glViewport (GLint x, GLint y, GLsizei width, GLsizei heigh
2013-12-31 10:43:10
536
原创 修改VS2012的全局包含路径
第一种:视图->属性管理器 手动选择是debug还是release版本打开其中的win32.user.props 来手动修改包含目录第二种:修改配置文件(当界面配置失效 这种方法是最有效)C:\Users\Administrator\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props
2013-12-31 10:21:30
789
转载 C/C++中利用空指针简化代码,提高效率
这里的写法,可以避免使用 for 循环,减少栈空间内存的使用和减少运行时的计算开销!#include #include using namespace std; void print_char(char* array[]);//函数原形声明 void main(void) { char* test[]=
2013-12-26 09:03:20
538
转载 运算符重载(一)
重载为友员函数。 #include using namespace std;class Clock{private: int s; int m; int h;public: void display(); Clock(Clock &); Clock(int, int, int); friend Clock operator+(int, Clock&)
2013-12-25 22:25:31
525
转载 友员函数
#include using namespace std;class Integer{ int n;public: Integer(int x = 0){ n = x; }; friend int sum(Integer& a, Integer &b); friend class Operation;};int sum(Integer &a, Integ
2013-12-25 22:12:09
745
原创 指针与引用
#include "iostream"using namespace std;void testRef(){ int i=10; //引用不可以为空,他是一个对象的别名 int & ref=i; ref++; cout<<"i="<<i<<endl; cout<<"ref="<<ref<<endl; int j=20; //i=j 引用不可以改变指向,引用的操作直接反映到所
2013-12-24 10:07:49
491
转载 bind与function(一)
#include "stdafx.h"#include "iostream"#include using namespace std;using namespace placeholders;class MyFun{public: void print(int i,int j) { cout<<i<<"\t"<<j<<endl; } void hehe(int i) {
2013-12-24 08:49:13
476
转载 简单的bind实现
#include "main.h"#include "iostream"#include using namespace std;namespace{ class placeholder_{}; placeholder_ _1;}templateclass simple_bind_t{private: typedef R(T::*F)(a
2013-12-23 22:08:32
562
转载 Lua 语言 15 分钟快速入门
-- 两个横线开始单行的注释 --[[ 加上两个[和]表示 多行的注释。--]] ---------------------------------------------------- -- 1. 变量和流控制。 ---------------------------------------------------- num =
2013-11-29 13:40:34
606
自己动手写CPU(带书签扫描版)
2018-06-02
Visual.Assist.X.v10.8.2007破解版
2013-12-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人