自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 资源 (18)
  • 论坛 (5)
  • 收藏
  • 关注

原创 Windows平台coredump处理

只适用于vs编译器,mingw好像是不支持MiniDumpWriteDump函数,这个不太确定,可以自己测试一下#ifdef Q_OS_WIN#include "dbghelp.h"#pragma comment( lib, "Dbghelp.lib" )LONG WINAPI AppExceptionCallback(struct _EXCEPTION_POINTERS *ExceptionInfo){ if (!QDir("logs").exists()) { QDir().mk

2020-11-15 16:09:38 11

原创 使用匿名函数绑定重载信号槽

使用lambda定义匿名函数,在匿名函数中调用槽函数,这种写法在类定义的时候可以不用Q_OBJECT宏,不会生成Qt那些乱七八糟的东西,同时使Qt的信号槽的适用范围更广QObject::connect(ui.pushButton_Open, static_cast<void(QPushButton::*)(bool b)>(&QPushButton::clicked), ...

2020-06-06 19:47:46 52

原创 Jekyll + Github Pages + CSDN迁移脚本 = 自己的云笔记
原力计划

折腾了几天,将sbdn上的文章转移到gayhub pages上,做个简要笔记,以后sbdn上不再更新,转移到gayhub pages,新地址戳这里,废话不多说,直接开始gayhub部分创建gayhub帐号,然后新建一个名为用户名.github.io的存储库,注意,存储库的名称一定要是这个形式的,否则后期访问处理路径问题是很麻烦的向存储出中添加一个index.html或者README.md...

2020-03-27 11:43:45 11115

原创 Qt的TCP通讯
原力计划

基本使用使用Qt的进行TCP通讯,主要用到两个类,QTcpServer和QTcpSocket。前者主要用于服务端的监听,相当于原始socket中由socket函数创建的监听socket;后者主要用于读写数据,相当于原始socket中由accept函数返回的连接socket。服务端的大致使用流程如下:创建QTcpServer对象,调用listen函数进行IP和端口号的监听,执行过该函数后,客...

2020-03-23 11:58:30 11315 1

原创 正确解决VS编译Qt遇到无法运行rc.exe问题

今天用vs新建一个qt工程,编译的时候发现无法运行“rc.exe”,习惯性的上网找解决办法,找到的都是把rc.exe复制来复制去的,这是绕开问题,不是解决问题。而且我之前的qt工程不用复制rc.exe也能正常编译,只有新建的不行,所以肯定有其他正确解决问题的方法,最简单的就是比较两个工程的配置,看有什么区别。打开工程属性,看下面的截图能正常编译的旧工程中的目标平台版本是8.1,而新建的工程默...

2020-03-19 11:59:23 11349 1

原创 深扒QProcess

临近年关,春节前的一周时间都没什么事,每天上班光明正大的摸鱼。但一周都没事做也不免有些无聊。为了打发无聊的时间,翻出我珍藏多年的移动硬盘,在硬盘的某个快被遗忘的角落,翻出了一个我多年以前刚开始学C语言时在网上淘到的一个双管道后门程序。这个后门程序当时我是看不懂的,随手丢在了角落吃灰,这么多年过去了,我觉得我应该能看得懂了,就翻出来研究一下。其大致原理是这样的:先在本地起一个监听socket,然后...

2020-01-20 12:24:50 11277

原创 康威生命游戏

简介看这里为保证通用性,逻辑层使用C语言的标准库去做#ifndef __H__CELLULAR_AUTOMATA__#define __H__CELLULAR_AUTOMATA__#ifdef __cplusplusextern "C" {#endif // __cplusplus int startGame(int grid, unsigned int seed, int init...

2020-01-18 15:28:11 11233

原创 机器学习调包侠:自己动手实现k最近邻算法

本篇对应教程油管原版,B站搬运k最近邻算法虽说本系列以调包为主,不过也不妨碍找个最简单的算法实现一下找找感觉最近邻指的是,测试数据进来后,找到和其最近的一个训练数据,并将其判定为是该训练数据的同类。如果遇到测试数据与两个训练数据的距离都相等,且这两个训练数据分属于两个类的情况,怎么判定测试数据的种类呢?一种方法就是给该测试数据随机指定一个类型,另一种做法则是按距离由近至远多选几个训练数据,...

2019-12-27 17:56:04 11193

原创 机器学习调包侠:sklearn测试数据切分和计算分类结果准确率

本篇对应教程油管原版,B站搬运。这期视频简单介绍了一些分类器学习算法的原理,如果我们需要对坐标系上的点进行分类,那么首先需要创建一条随机的直线,该直线的两侧就是分类的结果。如果训练数据中某个点的落在了直线的另一侧,那么就调整直线的参数从而使直线能够正确划分所有点的,最后的这条直线就是分类器了,测试数据进来后直接根据点在直线的哪一侧来确定点的所属分类,大致就是这么个意思。视频中介绍的神经网络的演示...

2019-12-27 15:16:23 11292

原创 机器学习调包侠:创建符合正态分布的测试数据

本篇对应教程油管原版,B站搬运。原版教程其实是介绍特征的好坏的,但是我觉得这个看一遍就懂了,没什么值得做笔记的,倒是视频中创建正态分布测试数据的例子值得记录一下代码import numpy as npimport matplotlib.pyplot as plt# 定义样本数量,两种各500,共1000greyhounds = 500labs = 500# np.random....

2019-12-27 14:18:03 11179

原创 机器学习调包侠:可视化决策树

本篇对应教程油管原版,B站搬运测试数据本节课要生成一个可视化的决策树,不能再用上一节那个简单的例子了,本节课我们使用机器学习领域中一个很经典的数据——鸢尾属植物数据集(Iris flower data set),该数据集的相关介绍戳这里。scikit-learn的数据集Iris flower data set作为一个经典数据集,scikit-learn中已经集成了,不需要我们自己去创建,...

2019-12-26 18:41:02 11252

原创 机器学习调包侠:6行代码实现分类器

先做一个简短的说明同样是一个学习笔记系列,只是记录一些个人学习过程中觉得值得记录一下的东西,不会做特别详细的说明。另外,看系列名字就知道,本系列只介绍现有的框架的用法,不涉及具体算法,并不适合想深入学习的同学,如果你只是想用别人写好的算法框架来实现一些有意思的想法,那么不妨来试试看。环境搭建本例主要使用scikit-learn,官网戳这里,中文文档戳这里,具体安装步骤这里就不废话了,文档上都...

2019-12-26 16:50:38 11313

原创 深入理解指针:一文让你彻底理解指针

好多人都说指针很难,其实指针并不难,你不是不懂指针,你是不懂内存管理,搞懂内存管理,指针就是纸老虎

2019-12-06 13:56:44 11582 1

原创 Qt的拖放功能

对于源控件,需要重写鼠标按下事件和鼠标移动事件class TweenMouldListWidget : public QListWidget{ Q_OBJECTpublic: TweenMouldListWidget(QWidget *parent = Q_NULLPTR); ~TweenMouldListWidget();protected: virtual void mou...

2019-12-03 18:21:31 11175

原创 Qt槽函数的重入问题

在Qt的信号槽机制中,如果一个槽函数的执行时间很长,在槽函数还没有执行结束的时候,有新的信号产生,默认情况下,该次信号不会被丢弃,而是会等槽函数执行结束后再次调用槽函数但是在某些情况下,如果想将槽函数执行过程中所产生的新信号丢弃掉,有以下两种方法:blockSignals和disconnect假设有如下信号槽connect(m_play, &QShortcut::activated,...

2019-11-29 18:14:36 11906

原创 Qt的延时函数

阻塞延时使用QThread类的msleep、sleep、usleep函数优点:使用简单,都是静态函数,引入头文件后可以直接调用精确度高,可以精确到微秒缺点这几个函数的作用是强制当前线程休眠,非ui线程倒是无所谓,如果是ui线程,界面会卡死非阻塞延时利用Qt的事件循环结合while循环,方法如下QTime timer = QTime::currentTime().addMS...

2019-11-29 17:57:04 11734

原创 Qt的操作堆栈

用Qt做操作堆栈主要用到这么几个类QUndoCommand、QUndoStack、QUndoGroup和QUndoView,下面详细介绍QUndoCommand该类就是堆栈中的操作元,我们在用的时候需要创建该类的子类,重写该类的一些方法,并将操作的具体实现放到继承的子类中,通常需要重写redo、undo、mergeWith、id等方法redo该方法是操作的具体实现,也就是做和重做时所调用的...

2019-11-22 18:00:09 11403

原创 Qt程序打包

如果直接把编译好的Qt程序拿到未安装Qt运行库的机器上无法直接运行,通常需要将Qt的依赖运行库一起进行打包发布手动复制动态库文件进行打包很麻烦,好在Qt提供了一个自动打包工具,可以将所需要的文件自动复制到程序所在目录首先打开Qt的控制台,然后切换到发布程序的目录,执行命令windeployqt 应用程序名命令执行完毕后就会将所有的依赖文件都拷贝到该目录下,直接将该目录打包发布即可...

2019-11-11 10:18:57 11239

原创 VS常用正则替换

匹配整体替换查找:.*替换:$1栗子:将"str"替换为tr(“str”)搜索:".*"替换:tr("$1")匹配通用部分替换查找:([^"])替换:$1栗子:将u8"str"替换为tr(“str”)查找:u8"([^"])"替换:tr("$1")...

2019-09-26 10:07:39 11174

原创 OpenGL学习笔记:几何着色器

之前还有一节介绍高级数据处理的,和这节的几何着色器都很好理解,没啥可总结的,直接上例子代码#include <glad/glad.h>#include <GLFW/glfw3.h>#include <stb_image.h>#include <glm/glm.hpp>#include <glm/gtc/matrix_transfo...

2019-09-19 14:46:39 11256

原创 OpenGL学习笔记:立方体贴图

这一节很好理解,不需要多做说明,下面的例子程序的顶点数据和原版例子略有不同,注意法线向量#include <glad/glad.h>#include <GLFW/glfw3.h>#include <stb_image.h>#include <glm/glm.hpp>#include <glm/gtc/matrix_transfor...

2019-09-18 14:01:21 11291

原创 OpenGL学习笔记:帧缓冲

这节课很好理解,需要注意的是,在向自定义的帧缓冲中写如像素数据的时候,数据会被写入到帧缓冲的纹理附件中。在本节课的示例程序中,首先向帧缓冲的纹理附件写入地板,箱子的图像数据,然后通过读取帧缓冲的纹理附件的数据,写入到默认缓冲的着色器中,并在着色器中进行颜色修改,以达到各种效果,相当于是加了一个滤镜#include <glad/glad.h>#include <GLFW/gl...

2019-09-17 17:37:53 11207

原创 OpenGL学习笔记:面剔除

本节的内容是在定义顶点的时候确定三角形顶点的顺序,然后根据顺序确定物体的正面和背面,在渲染的时候就可以删除被挡住的一面从而提高绘图效率本例中和原教程略有不同的是,由于懒得重写代码,将上节的混合内容删除,留下了地板和两个箱子,如果直接使用面剔除,由于地板和箱子的正面和背面不同,所以要在渲染循环中,每次绘制之前,改变剔除面的行为,从而不影响画面显示#include <glad/glad.h&...

2019-09-16 16:35:32 11201

原创 OpenGL学习笔记:混合

丢弃片段第一种混合的方法很简单,直接将alpha值为0的片段丢弃即可,这个可以在片段着色器中进行简单处理,需要注意的是,当采样纹理的边缘的时候,OpenGL会对边缘的值和纹理下一个重复的值进行插值(因为我们将它的环绕方式设置为了GL_REPEAT。这通常是没问题的,但是由于我们使用了透明值,纹理图像的顶部将会与底部边缘的纯色值进行插值。这样的结果是一个半透明的有色边框,你可能会看见它环绕着你的纹...

2019-09-16 16:06:05 11217

原创 OpenGL学习笔记:模版测试

模版测试的作用就是给我们提供一种可以控制片段绘制的方法,让我们的绘图更为灵活。本节中绘制边框的例子的设计思想也很容易理解,具体可以看下面代码的中文注释。原版教程中有这么一句话:“我们将模板函数设置为GL_NOTEQUAL,它会保证我们只绘制箱子上模板值不为1的部分,即只绘制箱子在之前绘制的箱子之外的部分。注意我们也禁用了深度测试,让放大的箱子,即边框,不会被地板所覆盖。”他的想法我理解,可为什...

2019-09-11 19:40:39 11181

原创 OpenGL学习笔记:深度缓冲

之前为了方便理解,代码尽量不封装。这节以后,凡是涉及到新东西的尽量不去封装,而不涉及新东西的,为了代码的简洁,尽量去封装了深度缓冲我们观察空间中的两个物体,后面的物体被前面的物体挡住,我们是看不到被挡住的部分的,而深度缓冲可以简单理解为就是标识这个“前后”的值。缓冲测试OpenGL是一个3D世界,但显示设备通常是2D的。前面介绍过,要将一个3D图像转换为屏幕的2D图像,需要经过裁剪。在裁剪...

2019-09-09 17:52:48 11191

原创 Python合并多个Excel文件

import osimport xlrdimport xlwt# 文件所在目录rootdir = "."list = os.listdir(rootdir) # 创建输出文件book=xlwt.Workbook(encoding="utf-8",style_compression=0)sheet = book.add_sheet('test01')# 输出文件行索引outr...

2019-09-06 12:07:21 11496

原创 OpenGL学习笔记:加载模型

加载模型需要使用Assimp来屏蔽掉不同工具的模型文件,Assimp的gayhub简单说一下,不同的3D编辑工具生成的模型文件格式是不同的,Assimp的作用就是将不同的模型文件转换成相同的格式,然后OpenGL再将Assimp的格式转换成OpenGL的数据格式。Assimp是怎么转换其他模型格式的我们不需要关心,但是我们需要关心转换后的统一的数据格式,因为我们需要将这个格式转换到OpenGL中...

2019-09-06 10:13:16 11226

原创 OpenGL学习笔记:多个光源

这一节没有新东西,都是对之前光源进行一个综合应用,着色器代码中增加的函数和数组的使用方法#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>#include <windows.h>#define STB_IMAGE_IMPLEMENTATION#include...

2019-09-05 11:34:59 11356

原创 OpenGL学习笔记:投光物

平行光这部分好理解,只贴出着色器代码,注意:这里删除了灯源位置,添加了无限远光源的方向#version 330 core// 定义材质结构体struct Material {// vec3 ambient; // 移除了环境光材质颜色向量,因为环境光颜色在几乎所有情况下都等于漫反射颜色,所以我们不需要将它们分开储存 sampler2D diffuse; // 将之前定义的...

2019-09-04 17:54:19 11228

原创 OpenGL学习笔记:光照贴图

漫反射贴图简单说就是在上一节的基础上给物体添加上纹理,主要做两件事,将之前定义的vec3漫反射颜色向量替换为漫反射贴图,删除环境光源这里就不贴完整例子了,简单说一下着色器的主要修改,添加纹理的部分就不贴了,详见前面纹理部分的章节,记得更新顶点着色器的数据,将纹理添加进去#version 330 core// 定义材质结构体struct Material {// vec3 ambi...

2019-09-02 19:03:08 11270

原创 英文版vs显示中文乱码

首先要确保文件的编码正确,编码没问题还是无法显示中文,可以尝试一下这个方法

2019-08-27 10:05:20 11450

原创 OpenGL学习笔记:矩阵变换

缩放前面说了一大堆的理论,现在终于可以来点实际应用了对一个向量进行缩放(Scaling)就是对向量的长度进行缩放,而保持它的方向不变。我们先来尝试缩放向量v⃗=(3,2)\vec{v} =(3,2)v=(3,2)。我们可以把向量沿着x轴缩放0.5,使它的宽度缩小为原来的二分之一;我们将沿着y轴把向量的高度缩放为原来的两倍。我们看看把向量缩放(0.5, 2)倍所获得的s⃗\vec{s}s是什么...

2019-08-23 20:42:31 11352

原创 OpenGL学习笔记:数学基础

本篇对OpenGL学习过程中遇到的关键的矩阵运算做一个总结,方便以后查阅。向量向量高中就接触了,这个问题应该不大,向量就是一个有方向的量,具有平移不变性,因此我们可以默认所有的向量都是以0点为起点,这样就可以只用一个点就表示出一个向量了。在高中所接触的向量通常是在平面坐标系中,后来又扩展到了空间坐标系,此时的向量具有几何意义。但是,在线性代数中的向量可以向N维扩展,超过三维以上就失去了几何意义...

2019-08-23 20:41:57 11232

原创 OpenGL学习笔记:材质

#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>#include <windows.h>#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"#include <glm/glm.hpp>...

2019-08-22 17:46:52 11260

原创 OpenGL学习笔记:法线矩阵和镜面光照

#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>#include <windows.h>#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"#include <glm/glm.hpp>...

2019-08-22 16:04:08 11197

原创 OpenGL学习笔记:基础光照

#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>#include <windows.h>#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"#include <glm/glm.hpp>...

2019-08-22 15:56:20 11265

原创 OpenGL学习笔记:颜色

我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色,而是它所反射的(Reflected)颜色。换句话说,那些不能被物体所吸收(Absorb)的颜色(被拒绝的颜色)就是我们能够感知到的物体的颜色。例如,太阳光能被看见的白光其实是由许多不同的颜色组合而成的(如下图所示)。如果我们将白光照在一个蓝色的玩具上,这个蓝色的玩具会吸收白光中除了蓝色以外的所有子颜色,不被吸收的蓝色光被反射到我们的眼...

2019-08-21 17:54:05 11236

原创 OpenGL学习笔记:摄像机

OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。场景旋转本例渲染循环以外的代码和之前章节一样,因此这里只给出渲染循环的代码// 创建渲染循环while (!glfwWindowShouldClose(window)){ // 处理输入事件 processInput(win...

2019-08-21 14:52:56 11280

原创 OpenGL学习笔记:多个立方体

现在我们想在屏幕上显示10个立方体。每个立方体看起来都是一样的,区别在于它们在世界的位置及旋转角度不同。立方体的图形布局已经定义好了,所以当渲染更多物体的时候我们不需要改变我们的缓冲数组和属性数组,我们唯一需要做的只是改变每个对象的模型矩阵来将立方体变换到世界坐标系中。#include <glad/glad.h>#include <GLFW/glfw3.h>#inc...

2019-08-20 17:57:03 11310

Android开发入门教程.pdf

Android开发入门教程,包括环境搭建等等内容

2013-03-09

Android开发入门经典

安卓开发入门经典,好不好看了就知道,还有20字?没几个人看描述的吧

2013-03-09

Google+Android开发入门与实战代码

Google+Android开发入门与实战代码,注意是代码,不是电子书

2013-03-09

Google Android开发入门与实战

Google Android开发入门与实战

2013-03-09

MFC控件.doc。。。。。。

MFC控件.doc,下了就知道。。。。。。。。。。。。。。

2011-06-19

劝学网SDK小入门.rar

劝学网SDK小入门.rar。。。。。。。。。。。。。。。。。。。。。。。

2011-06-19

winAPI学习资料.exe

winAPI学习资料.exe。。。。。。。。。。。。

2011-06-19

C语言也能干大事.doc

C语言也能干大事.doc。。。。。。。。。。

2011-06-19

1433错误修复大全.txt

1433错误修复大全.txt、。。。。。。

2011-06-19

流水灯原理图,可Proteus硬件仿真

单片机的,原理图,可Proteus硬件仿真。操,这样描述还不够?非得逼老子打字?不就是为了赚点积分下点东西吗?至于这么费劲吗?

2011-06-11

数码管真值表,补充字符数

看名字都知道的玩意非得逼老子打字,不就是为了弄点积分下东西吗,至于吗?

2011-06-11

Visual Assist X_10.9.2258.0破解补丁

win7+vs2017+Visual Assist X_10.9.2258.5,亲测可用 将文件解压后复制到 C:\Users\用户名\AppData\Local\Microsoft\VisualStudio\15.0_b4236290\Extensions\随机码 其中随机码每个机器都不一样,就那么一个目录,很好找,实在找不到就搜索VA_X.dll所在的路径

2018-04-26

跨平台C++开发技术

跨平台开发技术总结。。。。。。。。。。。。。。。。。

2018-04-26

WINDOWS核心编程

本书是讲解Windows 操作系统内部机制的专著,作者从基本概念入手, 全面系统地介绍了Windows的各种基本构件,如进程、线程、DLL和内存管理等, 并列举了大量应用程序,精辟地分析了构件的使用方法,为掌握Windows 编程 技巧提供了一条有效的捷径。对于不同水平的Windows 编程人员来说, 本书都具有极好的参考价值。

2018-04-26

Windows程序设计(第5版 珍藏版)光盘源代码

Windows程序设计第5版配套资源,书中代码集合。。。。。。

2018-04-26

Qt子进程获取控制台输出

示例代码演示了在Qt开发中,如何在子进程中截获控制台的输出

2018-04-26

Qt类中无QObject绑定信号曹.

qt开发中使用信号槽需要在类的声明中加入一个QBOJECT关键字,加入后工程中会被引入大量乱七八糟的东西,很是不爽,示例代码中使用了一种无需定义QOBJECT关键字的信号槽绑定方式,就不会有那么多乱七八糟的东西影响心情了

2018-04-26

正确且优雅的使用QThread

我们在写Qt多线程的时候,都会直接重写QThread类的run方法,其实这种方式是Qt的设计者所反对的,它违背了QThread类的设计初衷,示例代码中展示了设计者推荐的实现方式

2018-04-26

好诡异,void*指针强转后发生诡异偏移

发表于 2018-10-31 最后回复 2018-11-06

请问定义函数形参没有类型是什么情况

发表于 2018-04-19 最后回复 2018-06-26

开机出现SMART Failure Predicted on Hard Disk,按F1和u盘PE启动均无效

发表于 2012-02-10 最后回复 2018-04-19

请教recv和send的区别

发表于 2011-11-28 最后回复 2011-11-28

centOS 6.0 由字符界面切换图形界面语言版本变成英文了,求原因和解决,谢谢

发表于 2011-10-01 最后回复 2011-11-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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