OpenGL编程指南-光照

OpenGL通过光源、材料和光照模型,渲染光照物体,模拟现实世界1.光源1.创建光源 OpenGL至少支持8个光源,即GL_LIGHT0到GL_LIGHT7,可以使用glEnable开启光源 2.设置光源属性 设置光源方向:glLightfv(GL_LIGHT0, GL_POSITION,po...

2016-10-29 10:39:19

阅读数 348

评论数 0

设计模式2-单例模式

单例模式看起来挺简单的,但我觉得特别实用,尤其是在线程方面应用广泛; 简单的说,单例模式就是系统中只允许产生这个类的一个实例; 单例模式通过类本身来管理其唯一实例,这种特性提供了解决问题的方法。唯一的实例是类的一个普通对象,但设计这个类时,让它只能创建一个实例并提供对此实例的全局访问。唯一实例...

2016-10-15 21:16:50

阅读数 254

评论数 0

设计模式学习1-工厂方法模式

前几天接到吉威时代电话面试,问了一个设计模式的问题,这方面自己只是了解,但不是很熟悉,所以没回答上,于是决定现在开始学习这方面的知识,先从最简单的工程方法模式开始:这种模式其实就是新建一个Factory接口,每个产品都有各自的工厂继承自该接口,来生产不同的产品,以水果为例:#include<...

2016-10-13 11:16:05

阅读数 246

评论数 0

OpenGL-对纹理的理解

看了《OpenGL编程指南》第九章纹理贴图之后,一开始还对纹理的理解思路还是有点乱,后面不断的阅读别人的博客之后才慢慢的有了更加清晰的认识,于是通过博客再进一步理顺一下思路。1.关于纹理的一些基本概念理解纹理:简单的说,纹理就是矩形的数据数组。例如颜色、亮度数据等,之所以复杂,是因为矩形纹理可以映...

2016-10-06 10:31:53

阅读数 5328

评论数 0

基于VGI签到类目关联规则挖掘

用c#语言写的一个数据挖掘的算法,数据是深圳和香港的2015新浪微博签到数据。1.数据分析签到数据中能够体现用户行为特性的只有[Category]。这个字段下的数据都可以表示用户当前的一个行为。用户每一条签到数据代表了该用户当下的一个行为,所以用户所有的签到数据放一起,就可以形成该用户的一个签到轨...

2016-09-29 11:24:28

阅读数 282

评论数 0

同名标靶点自动匹配算法实现-三点匹配

1.两个标靶数据 2.匹配结果 3.代码#include <iostream> #include <vector> #include <math.h> using namespace std; struct Point { int id;...

2016-09-28 17:53:38

阅读数 1381

评论数 0

OpenGL编程指南-顶点数组、视图变换、投影变换

1.从绘制立方体来理解顶点数组以及视图变换看了Opengl编程指南第二章的内容,其中一个很重要的概念就是顶点数组,也按照书上所说写了一个绘制立方体的程序,其实是一个很简单的程序,可是一开始总是只显示一个正方形。这样的问题第一反应肯定是视角的问题,于是就想到视角变换glRotatef。其实刚开始一直...

2016-09-12 11:10:26

阅读数 712

评论数 0

OpenGL与OpenCV实现增强现实

很久没有写博客了,最近在学习计算机视觉的相关知识,于是写了一个AR的小Demo。 该程序通过OpenCV实现对Marker的识别和定位,然后通过OpenGL将虚拟物体叠加到摄像头图像下,实现增强现实。首先来看看我们使用的Marker: 这是众多Marker中的一个,它们都被...

2016-08-21 17:12:46

阅读数 6531

评论数 1

关于最近刷leetcode总结

才刷了54道题目就有点想放弃了,最近打击实在是太大了,连续被百度、阿里拒绝,阿里内推连个电面都不给,这太让人绝望了吧!不过还是会继续走校招流程,再挣扎一下,还是有希望的。 通过刷leetcode发现算法真的很薄弱,一遇到算法题就得重新去百度一下,尤其是五大基本算法太重要了,不过通过这些题目的训练...

2016-08-21 16:53:59

阅读数 2011

评论数 0

5个常用的排序算法总结

1.插入排序基本思想:插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 void insertSort(vector<int>& nums) { int k = 0; for (int i = 0; i < n...

2016-07-27 11:01:23

阅读数 402

评论数 0

数据结构与算法-5大常用算法总结

1.贪心算法基本思想:贪心算法分阶段工作,在每一阶段,可以认为所做的决定是好的,而不考虑将来的后果。意味着选择的是局部最优,如果刚好是全局最优则算法正确,否则得到的是一个次优解。所有可以应用于不需要得到最佳答案,用贪心算法生成近似答案。1.1简单的作业调度问题问题:给出n个任务和每个任务的开始和结...

2016-07-26 10:18:52

阅读数 801

评论数 0

Static关键字所有用法详解

以前总是对static的涵义模棱两可,不太敢用,也不知道什么地方改用,static用法非常广泛,静态变量、静态成员、静态函数等,如果用的好,会是程序提升一个等级,并且可以解决很多实际问题,比如单例模式...所以在这里进自己目前的理解做一个总结: 用法1:

2016-07-13 10:22:54

阅读数 7861

评论数 0

如何快速上手使用OpenGL进行图形绘制

1.关于OpenGL几个常见的函数1.先看一个简单的绘制程序,绘制Polygon#include<Windows.h> #include<gl/GL.h> #include<gl/GLU.h> #include<GL/glut.h>void myIn...

2016-07-08 16:24:12

阅读数 3928

评论数 0

sql server2008导入数据错误分析

错误信息 - 正在执行 (错误) 消息 错误 0xc02020a1: 数据流任务 1: 数据转换失败。列“列 2”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。 (SQL Server 导入和导出向导)错误 0xc020902a: 数据...

2016-07-06 16:34:03

阅读数 7609

评论数 0

关于虚函数的总结

虚函数可以实现多态特性,因此在设计模式中很有用,配合继承的特性可以提供很好的解决方案 1.impure virtual 基类指定接口和缺省的实现方式,派生类重载基类中的虚函数,定义自己的实现方式,然后通过基类指针指向从而实现多态。 class Man { public: virtual ...

2016-06-14 21:54:10

阅读数 249

评论数 0

重新学习《C++Primer5》第13章-拷贝控制

13.1拷贝、赋值和销毁13.1.1拷贝构造函数1.拷贝构造函数:自定义和合成 2.拷贝初始化 在使用=号时 将一个对象为实参传递给一个非引用类型的形参 从一个返回类型为非引用类型的函数返回一个对象 用花括号列表初始化一个数组中的元素或一个聚合类中的成员 3.拷贝初始化的限制 explicit...

2016-06-06 10:30:22

阅读数 386

评论数 0

重新学习《C++Primer5》第12章-动态内存

12.1动态内存与智能指针12.1.1 shared_ptr类1.智能指针也是模板,定义方式一样 2.make_shared<>最安全的分配和调用方法auto p=make_shared<vector<string>>();//指向一个动态分配的空vector...

2016-06-01 10:47:50

阅读数 980

评论数 0

重新学习《C++Primer5》第11章-关联容器

11.1 使用关联容器void Chapter11In1() { /*vector和map的不同:vector相当于一个数组,采用顺序存储。优点:不需要分配存储空间也可以向数组一个存取,并且可以动态操作,节省空间 确定:插入、删除操作效率低,添加只能在最后map由一个健值和一个映照数据一一对应...

2016-05-18 11:11:30

阅读数 416

评论数 0

重新学习《C++Primer5》第10章-泛型算法

10.3 lamdba捕获1.值捕获int sz = 5; cout<<count_if(words.begin(), words.end(), [sz](const string &s){return s.size() >= sz; })<<end...

2016-05-16 10:40:19

阅读数 398

评论数 0

重新学习《C++Primer5》第9章-顺序容器

9.1 顺序容器1.vector和string采用顺序存储,可通过下标访问,但插入和删除会很耗时。 2.list和forward_list不支持随机访问,添加和删除很快 3.deque支持快速随机访问,中间位置添加和删除代价很高,但两端添加和删除很快 Note:通常,使用vector是最好的...

2016-05-05 17:00:46

阅读数 630

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭