- 博客(40)
- 资源 (19)
- 收藏
- 关注
原创 Python知识点整理(异常篇)
异常对异常的最好描述是: 它是因为程序出现了错误而在正常控制流以外采取的行为. 这个行为又分为两个阶段: 首先是引起异常发生的错误, 然后是检测(和采取可能的措施)阶段.
2016-07-03 14:25:21
510
原创 Python知识点整理(基础篇)
Python表达式列表推导式(list comprehension)语法:[expr for iter_var in iterable] 或 [expr for iter_var in iterable if cond_expr]说明:第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter
2016-07-03 11:25:11
765
原创 Python知识点整理(函数篇)
1.作用域global语句用于声明一个全局变量this_is_global = "abc"def func(): global this_is_global this_is_global = "global" print this_is_global func()print this_is_global嵌套作用域Python2.1之前只允许两个作
2016-07-02 12:10:23
995
原创 WebKit的一些笔记3(基础篇)
Webkit渲染基础概述Webkit是一个渲染引擎,而不是浏览器,它专注于网页内容的展示,其中渲染是其中的核心功能之一。DOM称作文本对象模型,简单来说,是对HTML或者XML等文档的结构化表示方法,通过这种方式,用户可以通过接口访问HTML页面任何元素的相关属性,并可以对DOM进行相应的操作。对于DOM树的可视节点,WebKit需要创建相应的RenderObject节点,这些节点
2015-07-22 12:46:45
714
原创 WebKit的一些笔记2(基础篇)
WebKit渲染网页WebKit内核我们可以通过下图了解这个过程是如何完成的:首先通过网络把网页内容载入到本地存储;HTML解析器把它解释为DMO树,CSS解析器解析CSS部分,JS代码交给JS引擎去处理。几部分共同构成新的内部绘制模型;接着计算布局,也就是各个元素的大小和位置信息,最后由绘图模块完成图像的绘制。网页渲染过程主要分为三个过程:
2015-07-21 20:44:37
559
原创 WebKit的一些笔记1(基础篇)
概述WebKit是一个开源的网页渲染引擎项目,项目包括两部分:第一部分是WebCore,包含对HTML,CSS等很多W3C规范的实现;第二部分是狭义上的WebKit,主要是各个平台的移植并提供相应的Web接口,这些接口提供操作和显示网页的能力。WebKit2是相对于狭义的WebKit而言,它是一个新的API层,最主要的变化在于将网页的渲染至于单独的进程,接口层则在另外一个进程,
2015-07-21 15:12:21
663
转载 设计模式的六大原则
1.单一职责原则定义:一个类只负责一项职责。问题由来:一个类T有两个职责P1和P2,当修改职责P1的时候,有可能会导致原本正常的P2也发生故障。解决方案:遵循单一职责原则,建立类T1和类T2,分别完成职责P1和职责P2。单一职责原则,即便对于新手程序员,也是很容易遵守的。但是为什么会出现违背这一原则的情况出现呢?原因是有职责扩散。职责扩散就是,由于某种原因,职责P被分为粒度更细的P
2015-06-10 14:02:19
473
原创 工厂模式
1.简单工厂模式简单工厂模式属于创建型模式,又叫做静态工厂方法模式, 但不属于23种GOF设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,动态的决定应该创建哪个 产品的实例,这些产品都有一个共同的父类(虚基类)或接口。1.1角色工厂角色:简单工厂模式的核心,负责实现具体产品的内部逻辑。创建方法可被外界直接调用。抽象产品角色:简单工厂模式创建的所有对象的父类,描述所有实
2015-06-10 13:20:58
439
原创 Effective C++ 学习笔记14
条款14:确定基类有虚析构函数我们可以用静态数据成员和静态函数来处理一个类所拥有的对象数。例如:#include class EnemyTarget {public: EnemyTarget() //初始化方式1 { ++numTargets; } EnemyTarget(const EnemyTarget&) //初始化方式2 { ++numTa
2015-02-17 12:35:18
458
原创 Effective C++ 学习笔记11
条款11:为需要动态分配内存的类(含有指针的类)声明一个拷贝构造函数呃一个赋值操作符请注意下面这段代码:#include class String{public: String(const char* value) { if (value) { int length = strlen(value) + 1; data = new char[lengt
2015-02-16 17:07:02
515
原创 Effective C++ 学习笔记6
条款6:析构函数里对指针成员调用delete添加一个指针成员的流程:1.在构造函数中对指针进行初始化:对内存进行清0操作,然后通过赋值操作符分配新的内存(分配内存,或者赋值0);2.析构函数里头delete指针(空指针也可以直接delete)。如果在析构函数中没有删除指针,它不会表现出明显的症状,不断增长的内存泄露会最终侵蚀你的地址空间。
2015-02-13 17:25:26
480
原创 Effective C++ 学习笔记5
条款5:对应的new和delete要采用相同的形式看下面例子:string* Arr = new string[100];.....delete Arr;这样做的话,Arr[100]指向的至少99个对象没有被成功释放,因为析构函数没有被成功的调用。正确做法是:delete[] Arr;如果没有正确使用相同的形式,结果是不可预测的。使用typedef的同学需要注意下,
2015-02-13 16:49:03
423
原创 Effect C++ 学习笔记4
条款4:尽量使用C++风格的注释第一部分:关于两种注释1.C语言的注释很容易产生错误例如:if(a > b){ /* swap(a, b); /*交换A和B的位置*/ */}这样会使注释提前结束。2.有些老的专门为C语言设计的预处理程序,可能不知道C++风格的注释例如:#define Pi 3.1415926 //圆周率//后
2015-02-13 16:14:35
613
原创 Effect C++ 学习笔记3
条款3:尽量使用new和delete而不用malloc和free原因很简单:malloc和free是C语言的产物,它们并不知道构造函数和析构函数。例子:1.Arr1中有足够10个string对象存放的空间,但是内存里面并没有创建完整的string对象。 string *Arr1 = static_cast(malloc(10 * sizeof(string)));
2015-02-13 15:41:35
511
原创 Effective C++ 学习笔记2
条款2:尽量用而不是注意:这里说的是而不是,两者区别:处于std名空间之下,而处在全局空间下,容易造成名字冲突。1.scanf/printf 的缺陷 1)scanf/printf很轻巧、高效,但是他们不是类型安全的,而且也没有扩展性; 2)scanf/printf需要把变量和控制格式区分开来。它们的弱项正是>>和1)通过运算符函数重载可以处理自定义类
2015-02-13 15:08:31
462
原创 EffectiveC++ 学习笔记1
条款1:尽量使用const和inline而不用#define(尽量使用编译器而不是预处理,方便找错)需要注意的两点:1.定义指针常量的时候a.指针是常量的,要定义成constb.指针所指的类型要定义成const例如:const char* const authorName = "Scott Meyers";2.类中的常量(静态的类常量成员变量)
2015-02-13 12:12:53
465
转载 C/C++编译过程
C/C++编译过程 C/C++编译过程主要分为4个过程 1) 编译预处理 2) 编译、优化阶段 3) 汇编过程 4) 链接程序 一、编译预处理 (1)宏定义指令,如#define Name TokenString,#undef等。 对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,
2014-11-18 09:50:23
586
转载 浅谈C++中指针和引用的区别
指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;
2014-11-18 09:42:40
510
原创 C++返回局部变量的指针问题
#include int* zhizhen1(){ int* i = new int(1); return i;}int* zhizhen2(){ int* i; int c = 0; //临时变量被释放了 i = &c; return i;}int main(int argc, char **argv){ int *o1 = zhizhen1(); int *
2014-10-29 20:46:21
830
翻译 OGRE CG教程 (四): 全息衍射图效果
DescriptionAs they are many holo... hologram... and holographic shaders, this one is called "holographe".
2014-08-18 15:54:26
1055
翻译 OGRE CG教程(二): 如何编译CG
If you are a beginner trying to get into .cg you will quickly learn that it is pretty finicky; Much more picky than fixed function. 如果你是一个学习CG的新手,你会很快的发现CG语言是非常讲究的,比其他语言要挑剔的多.If you are running ar
2014-08-15 19:45:57
1052
翻译 OGRE CG教程 (一):OGRE CG 基础
Example 1: Plain TextureExample 2: Texture with modulated colorProgrammatic control of color parameterFurther Reading/Learning
2014-08-15 18:53:23
1680
原创 OGRE(八):Ogre例子中的Character脱离Browser的代码
头文件 Character.h#include "ChracterController.h"using namespace Ogre;class Character: public FrameListener{public: Character() { startup(); loadResources(); setupContent(); setupCont
2014-04-19 14:16:08
1041
原创 5.2 Center Selection 中心选址
Input. Set of n sites s1, …, sn andinteger k > 0.
2014-04-16 22:40:24
3857
3
原创 OGRE(七)
#include "OGRE/Ogre.h"#include "OIS/OIS.h"class MyFrameListener:public Ogre::FrameListener{public: bool frameStarted(const Ogre::FrameEvent &evt) { //std::cout<<"Frame Start"<<std::endl;
2014-04-12 18:28:14
736
原创 OGRE(六)
#include "OGRE/Ogre.h"#include "OIS/OIS.h"class MyFrameListener:public Ogre::FrameListener{public: bool frameStarted(const Ogre::FrameEvent &evt) { //std::cout<<"Frame Start"<<std::endl;
2014-04-11 15:17:26
765
原创 OGRE(五)
#include "Ogre\ExampleApplication.h"class Example34FrameListener : public Ogre::FrameListener{private: Ogre::SceneNode* _node; //储存传来的场景节点 Ogre::Camera* _Cam; Ogre::PolygonMode _PolyMode; //
2014-04-10 15:44:06
696
原创 OpenGL导入3DS专题
最近一直在研究如何将3D模型导入OpenGL,略微有些进展,在附录部分把它记录下,希望能起到抛砖引玉的作用,有不足的地方,请大家指出
2014-04-04 21:22:40
7274
4
转载 Python基本规范
1.编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- 。设置编辑器,默认保存为 utf-8 格式。2.注释 业界普遍认同 Python 的注释分为两种的概念,一种是由 # 开头的“真正的”注释,另一种是 docstrings。前者表明为何选择当前实现以及这种实现的原理和难点,后者表明如何使用这个包、模块、类、函数(方
2014-03-15 13:16:28
816
转载 Ubuntu12.04下安装numpy and matplotlib(亲测可行)
Ubuntu下安装numpy and matplotlibroot下安装numpy相对简单,以下命令可以完成 apt-get install python-numpyapt-get install python-scipy 安装matplotlib相对复杂一些需要先安装其依赖的包libpng和freetype安装libpng:
2014-02-27 20:15:09
1466
原创 SMO算法草稿
负类正常情况Ei负类一旦越过负支持平面,0负类一旦越过超平面,Ei>1负类一旦越过正支持平面Ei>2正类正常情况Ei>0正类一旦越过正支持平面,-1正类一旦越过超平面,Ei正类一旦越过负支持平面Ei负类在支持平面之间 1正类在支持平面之间 -2
2014-01-15 14:54:41
1003
基于opengl的导入3DS模型和MDL骨骼动画的射击游戏
2014-01-13
(中文版)3D数学基础图形与游戏开发
2013-11-06
opengl导入多个3ds模型和场景漫游的方法(代码+文档)
2013-10-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人