加载中…
个人资料
宁静致远
宁静致远
  • 博客等级:
  • 博客积分:0
  • 博客访问:9,339
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
博文
标签:

转载

阅读  ┆ 评论  ┆ 转载原文 ┆ 收藏 
(2014-05-12 09:13)
最近上面向对象分析与设计,老师让讲一下设计模式。我讲的是迭代器模式,怕以后用到了没地方找,在这记录下来。

Ø模式介绍
在软件开发中,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一是存储数据;二是
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2014-05-08 08:39)
标签:

it

我的博客搬家到CSDN了。
http://blog.csdn.net/
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
1、创建逃跑按钮步骤:
step1:首先创建两个按钮
step2:由于我们要捕获一个鼠标移动的消息,而这个消息是由按钮消息来进行响应的。说的通俗点就是:在按钮类中由一个鼠标移       动的消息响应函数,当鼠标在按钮上时,只要一移动鼠标,就响应该函数。understand?
      所以我们创建一个CButton类(假如叫CLspBtn),在里面响应一个鼠标移动消息
step3:怎么样达到逃跑功能?我们的策略是:创建两个一模一样的按钮,当鼠标移动到一个按钮时,另一个按钮消失,反之亦然
但是怎么实现这个功能呢?在CLspBtn类中定义一个CButton指针。而在对话框类中分别给两个按钮定义两个CLspBtn的对象
在对话框初始化的时候,也就是OnInitDialog中,在交换两个对象的地址,因为每个对象中有一个CLspBtn指针(在CLspBtn中定义一个该指针)。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2014-05-06 10:28)
标签:

it

分类: 设计模式
上两天看了大话设计模式这本书。由于看的太快。今天看完了,合上书,一想,什么都没留下。想想还是写下来可能理解的会比较透彻。
按照我对这本书的理解进行写吧,和书上的差不多,只是自己对书的理解
以计算器来讲解简单工厂模式:
封装:
写一个计算器,可以和面向对象无关,就可以写出来。但是为了和面向对象扯上关系。同时也为了增加代码的质量(至于什么质量,下面会提到),我们要思考下,我们能否让和控制台无关的程序分离出来,这里面也就是用到了面向对象的封装性。同时可以增加代码的复用性(这就提高了代码的质量,可以在别的地方用).思考后,操作是和控制台无关的。所以可以定义一个操作类Operation,里面写一个GetResult(double numberA,double numberB,string operation)函数,在主函数中调用这个函数,并传入相应的参数就OK了。
紧耦合和松耦合:
通过分析,上面的代码存在一定的缺陷,比如要增加一个开方的运算,则需要对有加减乘除操作的代码中加入开方操作。这样耦合度太大。这样说,体现不出这样的缺陷在哪。举个例子:假如你要为一个公司
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2014-05-06 08:55)
标签:

mfc

dialog

控件

分类: MFC
这一教程的知识点有:
1、创建模态、非模态对话框
2、得到对话框中控件的文本的办法(有七种,介绍最常用的两种)
3、完成对话框的收缩和扩展功能
4、完成按回车键,输入光标在空间上的移动功能。
5.通过单击一个按钮,动态创建另一个按钮,并销毁按钮窗口
 分别介绍:
1、创建模态、非模态对话框
模态:
CTestDlg dlg;
dlg.doModal();
非模态:
CTestDlg *pDlg=new CTestDlg();//如果这不是局部的没有必要创建指针,创建对象就行了
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOW);


2、得到对话框中控件的文本的办法(有七种,介绍最常用的两种)
方法1:
int num1,num2,num3;
char ch1[10],ch2[10],ch3[10];

GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
区别1:
请看下面一段程序:

void test();

int _tmain(int argc, _TCHAR* argv[])

{

test();

return 0;

}


void test()

{

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
今天,偶然遇到了一个问题,有一些Mat经过操作后,会形成负值,我遇到的问题是:怎么修改这些负值,也就是怎么对其进行操作???

如果用以前对像素的操作办法进行操作,是不行的,因为以前一直用的是uchar类型的,这种类型的范围是0--255,不可能对负值形成操作,经过一番尝试,可以用两个函数解决这个问题,分别是assighTo或者convertTo这两个函数都可以解决这个问题。

代码如下:
Mat (Mat_(3,3) << 0, -2, 0, -126, 5, -7, 245, -3, 106); //创建一个含有负值的Mat
Mat dst(3,3,CV_8UC1);//用来接收转换后的数据的Mat,注意第三个参数
//C.convertTo(dst,dst.type());//转换函数
C.assignTo(dst,dst.depth());//同上,转换函数
//cout<<dst<<' ';
for(int y=0; y
 
 uchar *data dst.ptr(y);//办法1
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

错误1:LINK : fatal error LNK1104: 无法打开文件“C:\Program Files\PrimeSense\NiTE2\Lib\\.obj”

 

原因:是因为链接器--》付加依赖项中多加入了$(NITE2_LIB64)或者$(OPENNI2_LIB64)。

这个问题,说实话我很纳闷,以前加上就没事。同样的一台电脑换了一个系统后,这个地方就出问题了。难道是系统的原因,目前我只有这一个解释了。

没遇到这个问题的整好,遇到了可以试试这种办法,将其删除试试。将下图中的$(NITE2_LIB64)删除



错误2:

1>opencv_core243d.lib(persistence.obj) : error LNK2019: 无法解析的外部符号 gzputs,该符号在函数 'void __cdecl icvPuts(struct CvFileStorage *,char co

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

数据:利用kinect已经将人体骨架的三维坐标提取出来,并保存在一个txt文档里面

目的:将三维坐标在屏幕上显示出来。

工具:openGL

 

通过查阅资料和老师的指导,如果想把三维坐标在屏幕上显示出来,要先转换成二维坐标,因为屏幕上显示的都是二维数据,就比如一张图片上面的像素点都是二维数据(xy,即便有通道数,也是用二维来表示的。而能实现这个功

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有