摘要: C++中的模板 + 函数指针, 用来模拟 C# 中的 泛型代理 如: Action<T> Func<T,TResult>C++ 中的函数指针定义 : typedef void (*Action)(int i) 这是定义了一个 无返回值,只有一个int 型参数的方法指针 , 但如果我要使用一个 string 或 float 等其它参数类型的方法,就只能再定义一个函数指针.C++ 中的模板函数定义 : template <class T> void Action(T) , 这样就可以把参数类型做为参数传给方法,但如果结合上面的 函数指什呢?... 阅读全文
posted @ 2012-11-04 13:53 easyfrog 阅读(13077) 评论(1) 推荐(0) 编辑
摘要: Array中的Linq 方法 :Where Count Select 示例数组:int[] intArray = {12,3,24,56,8,65,23}; 1. where --> 是筛选方式. 将一个序列中按条件筛选,放到返回的新序列中 如: 将示例数组中 大于30的数提取出来放到新的序列中. IEnumerable<int> result = intArray.where<int>(x => x > 30); 2.count --> 是计数方式. 得到一个序列中满足条件的元素的个数 如: 得到示例数组中有几个元素大于 20. int cnt 阅读全文
posted @ 2012-10-13 22:07 easyfrog 阅读(4420) 评论(0) 推荐(1) 编辑
摘要: class 是面向对像编程的基本概念. 是把处理的问题抽象为一个物体. 物体有属性 有方法 等等 . 在开发大型的软件上 组织代码的结构上 是非常好的一种方式.Struct 主要是做用其实是打包一些数据及方法 . 也是管理代码的. 只是他更 趋向数据的管理上.maxscript 中只支持struct . 我们也可以试着来模拟一下 CLass.. 实现面向对像编程. 将问题抽象成一个物体这个例子是.简单的实现一个BOX Class: 1 struct BoxStruct 2 ( 3 -- Fields 4 w,l,h,meshobj, 5 6 -- initializ... 阅读全文
posted @ 2012-05-07 14:00 easyfrog 阅读(435) 评论(0) 推荐(0) 编辑
摘要: View Code 1 using System; 2 3 // 声名一个代理,与类同级(其本质就是类) 4 delegate void theHandler(int i); 5 6 class TestClass 7 { 8 public void plus(int i) { 9 Console.WriteLine( " i + i = " + (i + i).ToString());10 }11 // 这个方法中的第一个参数 是一个代理.12 // 我们可以直接传入一个与其签名相同的 方法名.13 public void del... 阅读全文
posted @ 2012-05-05 18:10 easyfrog 阅读(378) 评论(0) 推荐(0) 编辑
摘要: C 语言 实现int数组的插值排序/*** Insert Sort ***/#include <stdio.h>// 将int数据打印出来void PrintArr(int* a,int len){ for (int i = 0;i<len;i++) { printf(" %d ",a[i]); } printf("\n");}void InsertSort(int* arr,int len){ // X 用来保存 要插入的数值 int x = 0; // 从第二个数开始 与前面所有的数进行比较.如果小于前面的数, // 就把这个值.. 阅读全文
posted @ 2012-03-28 22:41 easyfrog 阅读(894) 评论(0) 推荐(0) 编辑
摘要: C# 异步调用的学习 BeginInvoke ManualRestEventView Code 1 using System; 2 using System.Threading; 3 4 class AsyncTest 5 { 6 // 声明一个委托,与你要异步的方法有同样的签名 7 // 其实就是用委托把一个方法包裹了一下.这样就可以 8 // 使用 委托的 IAsyncResult BegionInvoke(AsyncCallback callback,Object object) 9 // 方法实现异步操作10 public delegate void AsyncEv... 阅读全文
posted @ 2012-03-13 16:06 easyfrog 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 使用 FindContours() 方法 来查找图像的边缘信息.是一个基本的联系.在OpenCvSharp中所有的 FindXXX() 方法 . 都需要开辟一开内存来储存结果使用 CvMesStorage storage = new CvMemStorage() 来开辟. 返回的都是一个CvSeq 序列.CvSeq<CvPoint>contours =newCvSeq<CvPoint>(SeqType.Contour,storage); 也就是这个内存块中装的是这个结果序列.最后. 我们使用 DrawContours(CvSeq contours,color 外框颜色 阅读全文
posted @ 2012-02-21 10:03 easyfrog 阅读(13617) 评论(1) 推荐(1) 编辑
摘要: 使用OpenCvSharp实现目标跟踪: 首先需要有两张图像. 一张为目标物体的图像(object) 别一张是含有这个目标物体的图像(Image). 使用Cv.MatchTemplate()方法在图像中去寻找目标物体 . 得到"一张图" 是一张结果图.这个图并不是简单意义上的图像. 而是寻找的结果. 如果图像的大小为W & H 目标图像的大小为w & h 那个这张结果图的大小为 (W - w + 1) & (H - h + 1). 最后. 我们使用CV.MinMaxLoc() 方法 . 得到这个结果的左上角的CvPoint与右下角的CvPoint . 阅读全文
posted @ 2012-02-19 18:30 easyfrog 阅读(6570) 评论(0) 推荐(0) 编辑
摘要: 这段时间 在研究图像识别的相关知识. 在网上看到了这个OpenCv 图像识别的开源库.功能十分的强大 .目前很多的AR技术都是基于此库. 但这个库主要是由C来编写. 对于刚刚接触的我. 入门有些难度. 但可喜的是. 此库被封装成.Net Framework 有多个版本. 我是选择了OpenCvSharp 这个封装库来学习的. (因为最开始看的一个老外的教程就是用的这个. 先入为主). 在此记下学习笔记. 以备之后回忆: 对于初学者来说. 我觉得最困扰我的不是OpenCvSharp本身. 而是如何部署这个开源的库. 因为我机器上没有安装Visual Studio 所以一直没有去试. 我直接使用了 阅读全文
posted @ 2012-02-15 23:11 easyfrog 阅读(9309) 评论(1) 推荐(1) 编辑
摘要: 这是我学习 Managed DirectX 的过程笔记. 因为都是 边学习边用代码来练习. 所以 就都以代码的形式来展现. 注释得很清淅明确,还包括.我个人的理解.都在代码的注释中.这是第一篇: 主要练习的是 基础的 设备的初始化 (如:显卡设备,键盘设备,鼠标设备等 , 还有如何创建顶点,及画三角形. 以及如果处理输入 (鼠标及键盘). 这是一个标准的MDX程序的流程View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Drawing; 4 using System.Windows.... 阅读全文
posted @ 2012-02-09 13:00 easyfrog 阅读(852) 评论(2) 推荐(0) 编辑