8 _寒潭雁影

尚未进行身份认证

我要认证

中科大IT向博士,熟悉MFC,C++,C等语言,参与过ffmpeg、机器视觉、并行计算、数据库等相关项目的研发和代码的编写http://blog.csdn.net/weixinhum为本人博客,上面记录了本人的一些技术总结

等级
TA的排名 1k+

QT框架下的OpenGL使用---实战篇---点云显示和交互

阅读本篇文章需要提前掌握OpenGL顶点和着色器及摄像机的相关知识。前面复现篇的两篇文章中介绍了Qt+OpenGL框架下顶点和着色器及摄像机的知识,接下来我们用这两个知识来实现3D领域非常常见的任务—点云显示和交互。点云的显示3D领域常见的一个需求是将点云显示出来给用户,这个功能乍一看好像还比较复杂,实则不然,只要我们学会OpenGL的顶点和着色器的知识就能轻松搞定。原理很简单,只要直接将点云当成是OpenGL的"点"图元进行处理就可以了。在顶点和着色器的复现文章中,我们绘制的图元是三角形,代码.

2020-08-14 15:56:31

QT框架下的OpenGL使用---复现篇---顶点和着色器

本篇文章的复现对应于LearnOpenGL教程的入门你好,窗口,你好,三角形,着色器三篇教程。在QT框架中使用OpenGL首先新建一个Qt Widgets Application工程,注意把创建界面点掉,以便我们用代码来创建界面。接着添加一个继承QOpenGLWidget的类来使用OpenGL,这里命名为MyOpenGLWidget,类的具体声明和定义如下:MyOpenGLWidget.h#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#i.

2020-08-13 15:56:55

QT框架下的OpenGL使用---复现篇---摄像机

QT框架下的OpenGL使用—复现篇—摄像机OpenGL编程中,始终会用到的除了顶点和着色器外,应该就属摄像机了。在QT封装的OpenGL中,可以通过QMatrix4x4这个类来设置摄像机的各种参数,其中最为基础的两个函数为perspective及lookAt。perspective函数用于设置摄像头自身的信息,有四个参数,含义如下:参数一:视角大小(度数)参数二:视角的宽长比参数三:近平面距离参数四:远平面距离通过设置视角的大小,我们可以模拟出远近的效果。例如在近距离下,我们能看到的东西

2020-08-13 15:45:20

毕业论文编辑器软件制作经历与思考3

这一系列的文章主要记录作者在开发下面网站中的毕业论文编辑器的经历以及一些思考。www.biyelunwenbjq.cn第三套方案本质上是第二套方案的完善,如果一早就了解到Word格式已经公开,根本就不会有前面两个版本,艹(总共花费了接近两个月)。不过收获也是有的,比方说Latex和Word之间的格式转换,没有这个经历的人应该很难像我一样了解得这么深刻(事实上对大多数人而言根本没有必要去了解,因此资料少到出奇,哎。。。后面如果有心情会写博客介绍几个刁钻的镜像映射问题给后来者抛砖引玉)。方案三前面方

2020-07-29 00:04:55

毕业论文编辑器软件制作经历与思考2

这一系列的文章主要记录作者在开发下面网站中的毕业论文编辑器的经历以及一些思考。www.biyelunwenbjq.cn在得知有些学校要求学生一定要提交Word文档的噩耗后,本人条件反射地喊出了"哇槽!",稍微冷静后想到的解决方法是找一个转换工具,将Latex生成的PDF文档转换成Word文档。然而尝试了所有能找到的收钱但提供试用版和不收钱但卖广告的转换工具后,得出一个极为痛苦的结论,似乎不存在一个完美的转换工具可以做这件事情。一查原理才知道,PDF比Word的颗粒度小,而且相对自由,因此不存在PDF

2020-06-09 16:50:50

毕业论文编辑器软件制作经历与思考1

这一系列的文章主要记录作者在开发下面网站中的毕业论文编辑器的经历以及一些思考。www.biyelunwenbjq.cn因为疫情的缘故,今年的假期意外的长。大年初三的时候跟几个以前学校的同事老哥聊天,聊到学生毕业论文格式的问题,纷纷表示学生的华丽操作极为要命,每次检测学生的论文格式都会怀疑人生。尤其是当学校面临教学评估的时候,学院甚至会要求带论文的老师把之前学生论文的封面重新打印—因为有些实在不敢看。话题至此突然勾起了研究生毕业论文改了十次格式的恐怖回忆,而后又鬼使神差的想起导师徐大让我用Latex

2020-06-03 18:20:44

ROS系统学习15---启动多个节点

在设计ROS系统工程的时候我们一般是按照多节点的形式设计的,这样做的好处在于将系统按模块进行了隔离,而坏处主要有两个,一是中间的数据传输是按照网络进行的,延时比较大,这个问题的解决办法比较多,比如内存共享之类的,我们这里不做讨论;二则是启动这些节点比较烦,有时候可能得启动十几个,把人搞崩溃,今天我们就来研究下这个话题。一般给出的办法是用ros launch,个人感觉有点复杂,操作起来不太方便,因此这里介绍另外一种方法。原理就是通过命令行打开多个终端然后运行不同的命令启动节点。创建脚本文件Starup

2020-05-25 17:45:45

ROS系统学习13—界面开发2—ROS消息接收和显示

ROS系统学习13—界面开发2上一篇文章介绍了如何搭建基于Qt5和librviz的ROS界面框架,这篇文章我们将进一步介绍怎么用这个框架来实现一些常用的GUI显示功能。接收并显示图像消息在ROS中,接收消息一般是用spin()或者spinOnce()两个函数实现的。前者是一个阻塞函数,一运行程序则会等待在该函数处接收消息,后者则在调用之时方能接收到消息。如果写过界面程序的老哥肯定清楚,这种性质的函数是不能写在界面程序中的,否则程序将会处于假死状态。因此在Qt中实现ROS消息的接收需要开辟新的线程来实现

2020-05-24 00:16:47

ROS系统学习14---在Windows上安装和使用ROS

使用ROS一般默认的操作系统是Linux的Ubuntu,其安装的过程也基本无障碍。然而Ubuntu相比Windows的生态还是不太完善,因此在电脑中装双系统然后反复横跳就变得很常见且让人崩溃。最近由于意识到ROS调试起来是在比较方便,而切来切去实在影响心情,于是着手研究Windows上安装ROS的操作,并做了下记录。由于该操作依据得到了官方支持,于是安装的难度也不算大,不过也没Ubuntu那么简单,可以直接参考ROS的Wiki。下面就按照Wiki的步骤一步步操作吧。Windows操作系统要在W

2020-05-21 16:43:33

ROS系统学习13—界面开发1—Qt 5环境配置

在ROS系统中,我们可以用RVIZ直接看处理的结果,比较方便。但RVIZ可以展示的信息不够全面,可定制化程度也不高,因此在要求比较高的需求中只能自己开发界面。而开发界面的工具则一般选用QT(似乎有人也使用PYQT来整活,但感觉速度应该跟不太上)。具体操作如下:安装Qt5一般安装完整版的ROS会自带Qt4,如果只想做简单的界面开发,Qt4也完全足够,可能出于这种原因,使用下面两个命令安装带QT界面的ROS包:sudo apt-get install ros-melodic-qt-rossudo apt

2020-05-14 22:30:28

四元数坐标旋转

在处理空间转换时经常会遇到使用四元数进行转换的场景,因此在这里做下记录。本篇博客不讲理论(因为作者也不懂,可能如果学习了会补充),只放出转换公式以及代码。设有三维点坐标为(x0,y0,z0)(x0, y0, z0)(x0,y0,z0),空间旋转后的点坐标为(x1,y1,z1)(x1, y1, z1)(x1,y1,z1),四元数为Q=q0+q1i+q2j+q3kQ=q_{0}+q_{1}i+q_{...

2020-04-17 15:22:34

Word的自动化读写库

之前一直以为Word作为微软的龙头产品,其生态一定极为封闭,因此在文档生成方面一直都使用的Latex。然而使用Word毕竟是大多数人的习惯,要将Latex文档生成应用到与使用者有交互的场景时总遇到不少问题,于是产生了是不是可以用程序读取和生成Word的想法。没想到经过一番搜索和折腾,发现的确有几个非常给力的".NET"库能在用户不装Word的情况下做到这件事。本人详细研究和使用了其中比较有代表性...

2020-03-12 18:39:47

PCL固定视角显示

在使用PCL是经常需要自行调节到某一个视角去看点云的表现,如果是做算法,有时还需要在同一角度去对比不同算法得到的结果,因此获得点云在某一视角下的参数,然后设置其下次启动时位于此视角是非常常见的需求。获得PCL视角参数代码如下:pcl::visualization::Camera camera;viewer->getCameraParameters(camera);printf("%l...

2020-03-04 18:10:29

LaTeX---行距设置

在使用LaTeX写文档的时候经常会遇到行距设置的问题,而如果不知道其运行的机制,经常会写出非常多多余甚至于相互冲突的命令。本篇文章将介绍下如何设置LaTeX的行距,以及LaTeX的行距与Word行距之间的对应关系。在LaTeX中,默认的行距是字体字号的1.2倍,因此其与字号的大小相关。如果要修改全局的默认行距,则在导言区加入“\linespread”命令进行修改即可。比如想要修改成2倍行距,用如...

2020-03-01 16:23:13

LaTeX---字符操作

字符操作字体设置一般情况下如果在LaTeX中用到了中文字体,会使用“ctex”宏包,其提供了几种默认的字体供我们使用,可以用如下方法调用:\documentclass[UTF8]{article}\usepackage{ctex}\begin{document}{\songti \ }\\{\songti 宋体\ }{\kaishu 楷体\ }{\heiti 黑体\ }\\{...

2020-02-29 17:29:11

Word给自动生成的目录页码添加括号

Word给自动生成的目录页码添加括号一些学校的毕业论文格式要求中,要求目录的页码需要加括号如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kW5SI4pw-1582034649079)(C:\Users\weixin\AppData\Roaming\Typora\typora-user-images\image-20200218214156664.png)]...

2020-02-18 22:09:07

使用C++调用控制台启动其他程序

在一些场景下,有界面的程序需要去调用控制台执行某些命令,这个时间可以利用ShellExecuteEx这个API来操作。具体如下:SHELLEXECUTEINFO commend;//命令对象memset(&commend, 0, sizeof(SHELLEXECUTEINFO));commend.cbSize = sizeof(SHELLEXECUTEINFO);commend.f...

2020-02-03 17:36:25

控制台默认字符编码问题

之前在制作的程序中需要运行Windows的控制台程序去调用LaTeX的XeLaTeX.exe编译器程序编译tex本文,结果发现编译一直出错,通过错误信息得知是中文字符串的问题。然而奇怪的是相同的文本在TeXworks环境下调用XeLaTeX编译器却完全没有问题,经过艰苦卓绝的研究后发现,原来是Windows的控制台默认字符编码不是UTF-8造成的问题。解决的办法也很简单,就是将默认的字符编码修改...

2020-02-03 17:16:06

C++ 文件复制

void copyFile(CString file1,CString file2){ CFile hFile; int len; hFile.Open(file1, CFile::modeRead | CFile::typeBinary, 0); len = hFile.GetLength(); //分配缓冲区 char* buf; buf = new char[len + 1]...

2020-01-30 20:28:36

Win10与Win7 64位系统的CPU多线程调度差异

最近在做兼容性测试的时候发现一个特别有趣的问题,在Win10上可以完美运行的C++程序在Win7上一运行就挂掉了,代码一模一样!在经过了两天没日没夜的调试后发现,Win10系统与Win7系统的CPU多线程调度存在较大的差异。在Win10中,如果在一个类中运行了一个函数对一个指针开辟对应的内存,而在类中开启线程对其进行调用,是完全没有问题的,即便是开辟内存的函数退出了也无所谓。而在Win7中则不然...

2020-01-17 18:13:47

查看更多

勋章 我的勋章
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取