代码改变世界

动态链接库(DLL)总结

2013-07-11 21:24 by 钱吉, 6507 阅读, 2 推荐, 收藏, 编辑
摘要:以前的学习笔记,记录库的一点学习心得。主要是Windows下的静态库和动态链接库,动态链接库只写了关于非MFC的DLL,比较初级,适合和我一样的新手看看。有不对的地方请指出,有疏漏的地方请补充,如果您比较闲的话,呵呵,感激不尽。一:静态链接库 静态库(staticlibrary)将函数和数据编译进一个二进制文件,通常可以命名为*.lib,编译器在链接过程中,将这些二进制数据复制出来,并与调用库的其他模块数据组合在一起,形成最终的可执行文件,等以后使用这个可执行文件时,就不需要这个静态库的支持了。1在Windows下静态库的创建和使用在vs2010新建一个win32静态库工程,添加两个文件... 阅读全文

加速度计的数据解读

2013-07-05 14:40 by 钱吉, 14976 阅读, 0 推荐, 收藏, 编辑
摘要:一:加速度计介绍加速度计是用来测试线性加速度的一种传感器,相对于电子陀螺仪,它具有长时间稳定的特点。但因为受到重力的影响,短时间内会有噪声。关于加速度计的原理和结构,可以参考我CSDN上转载的一篇文章:http://blog.csdn.net/lovewubo/article/details/9084291里面的内容很详细。本文只对从加速度计得到的数据进行解读。数据是从国外的一个大牛博客那里得到的(那人貌似是叫SOH Madgwick),那篇博文讲解了一种融合加速度计和陀螺仪的姿态解算算法,这里不讨论。只是把里面的一份加速度计的数据抽取出来,分析一下为什么加速度计的读数会是那个样子。首先说明一 阅读全文

matlab编译器和程序发布

2013-07-04 15:11 by 钱吉, 7541 阅读, 1 推荐, 收藏, 编辑
摘要:如何把编写好的matlab程序转换成c/c++语言,如何编译m文件为可执行程序,如何在没有matlab配置环境的机器上运行你编译出来的可执行程序?一:matlab的编译器设置执行命令:mbuild -setup,注意中间有一个空格。>> mbuild -setupPlease choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers [y]/n? y Select a compiler: [1] Lcc C 阅读全文

matlab中动态绘图并保存为视频的小例子

2013-07-04 13:35 by 钱吉, 12111 阅读, 0 推荐, 收藏, 编辑
摘要:如题,多的就不说了,先上一个效果:每隔0.1秒,绿色的直线转动一个角度。再看看代码如何实现:fuction mainclear;clc;%%%%%%%%%%%%%%%%%%%%%%%%%%主函数%%%%%%%%%%%%%%%%%%%%%%%%%%%bTimeStep = 0.1; %%重绘时间间隔bSaveAVI = 1; %%是否将重绘过程保存到视频文件initDegree = 0; %%初始位置,位于零度角if bSaveAVI aviname = input('input the file name for avi: ','s'); aviobj=avif 阅读全文

WGS84坐标和UTM坐标的转换

2013-06-26 15:46 by 钱吉, 25005 阅读, 3 推荐, 收藏, 编辑
摘要:如题。做了一个Demo,主要是把最后面的参考资料1里面的脚本改成了C语言版本的.代码: 1 #ifndef __COORCONV_H__ 2 #define __COORCONV_H__ 3 4 #include 5 6 double pi = 3.14159265358979; 7 8 /* Ellipsoid model constants (actual values here are for WGS84) */ 9 double sm_a = 6378137.0; 10 double sm_b = 6356752.314; 11 double sm_EccSq... 阅读全文

win32下的双缓冲绘图技术

2013-06-25 11:39 by 钱吉, 8778 阅读, 0 推荐, 收藏, 编辑
摘要:一:双缓冲原理 为了解决窗口刷新频率过快所带来的闪烁问题,利用双缓冲技术进行绘图。所谓双缓冲技术,就是将资源加载到内存,然后复制内存数据到设备DC(这个比较快),避免了直接在设备DC上绘图(这个比较慢)。打个简单的比方:有个画家在街边办了一个即时画展,在同一块画布上根据观众的要求画不同的图像,每当有一位观众制定要看什么画时,画家先把之前画布上的东西全部擦干净,再重新绘画。显然有一些经典的画像是大家都想看的,按照以前的老办法,画家每次都要重新画这幅图像,但这种擦了画,画了擦的方式很费时。所以画家想了一个办法,把这些经典画像预先用一块或几块画布画下来,等有人需要看时,把这些预备好的画布贴在现有画. 阅读全文

电子陀螺仪的随机误差补偿---平稳性检验

2013-06-14 13:58 by 钱吉, 1569 阅读, 0 推荐, 收藏, 编辑
摘要:摘自《捷联惯导系统》第二讲:时间序列建模 在惯性导航系统中,为了减小陀螺随机误差对系统精度的影响,有效可行的办法是采用滤波技术对随机误差进行实时补偿。实时补偿的前提是已知随机误差的模型,为此,需要事先对陀螺的随机噪声进行必要的数学处理,建立适合于在线补偿的数学模型。陀螺的随机噪声一般是有色噪声,即非平稳的随机过程,处理这类随机过程较成熟的建模方法是时间序列分析法。该方法是针对一组离散随机数据序列,进行时域和频域内的统计特性分析,求出实际物理系统的统计特性,并将随机数据浓缩成一个简单的随机差分模型。一:平稳性检验逆序法:对于测试数据记录y1,y2,...yn,将其分成M段,然后求各段的均值(或. 阅读全文

电子陀螺仪的角度获取测试

2013-06-07 16:11 by 钱吉, 14007 阅读, 0 推荐, 收藏, 编辑
摘要:导航中经常用到电子陀螺。为了测试陀螺仪在静止下的零漂输出和运动情况下的输出角度值,做了2个实验。用的陀螺仪型号是:L3G4200DTR是一个三轴输出的MEMS电子陀螺。1 零漂测试让陀螺仪静止不动,运行5分钟,记录串口输出数据,并解析出三个轴的角速度值。在matlab里面进行仿真。function mainclc;clear;dataFile = input('put file: ','s');nCount = 0;fileHandle = fopen(dataFile,'r');while ~feof(fileHandle) string = 阅读全文

致青春---关于工作生活的一点感想

2013-05-31 15:28 by 钱吉, 3366 阅读, 4 推荐, 收藏, 编辑
摘要:最近很流行致青春,生活的各个角落都流露着一丝忧郁惆怅气息,就连厕所都不例外,因为总能听到王菲的那首歌在你的蹲位上空飘扬。又到了一年一度的毕业季,加上点离别情绪,每个人顿时像打了鸡血一般开始黯然神伤。早上上班,经常发现一两张似曾熟悉的脸,可就是想不起来在那里见过?这也许就是你人生中的路人甲。为什么酱紫?我发现基本都是80后在推动这股暖流,其实我也是80后,眨眼间研究生毕业2年了,一下子到了奔三的最尾端,看看自己半熟不熟的脸,我也总能感觉一种叫青春的玩意在我身上刻下一点烙印。苦逼青年尚且如此,中国大批的文艺青年又何尝不是,于是大家开始致青春。虽然没看过这部电影,但已被这股忧伤拍了一鞭。今天看了.. 阅读全文

图论:最短路径搜索--Dijkstra算法(c代码实现)

2013-03-12 11:46 by 钱吉, 23573 阅读, 1 推荐, 收藏, 编辑
摘要:最近因为辞职,有不少闲功夫,重温下数据结构,顺便练练手。今天说说最短路径搜索算法中的Dijkstra原理和实现。一:简介 这个算法用于解决图中单源最短路径问题。所谓单源节点是指给定源节点,求图中其它节点到此源节点的最短路径。如下图所示:给定源节点a,求节点b到a的最短距离。(图来自于参考资料2)那么如何寻找?还是以上图为例:1)初始化:设定除源节点以外的其它所有节点到源节点的距离为INFINITE(一个很大的数),且这些节点都没被处理过。2)从源节点出发,更新相邻节点(图中为2,3,6)到源节点的距离。然后在所有节点中选择一个最段距离的点作为当前节点。3)标记当前节点为done(表示已经... 阅读全文