自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(419)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 音频可视化图形引擎—Specinker

bo主有话说:喜欢音乐的小伙伴相信都或多或少看到过一些频谱,简单的比如QQ音乐,酷狗等一些音乐软件上面都有一些,可惜的是这些频谱嵌入到软件界面上,好看的就那么一两个,并不能满足一些人对音乐的渴望,至少对我来说,是这样的。当然,还可以使用雨滴,AE来制作非常炫酷的频谱,但是这两个软件却也有一些弊端。通过雨滴,我们可以制作一些悬挂在桌面的频谱,但是制作这样的频谱,需要使用雨滴的编程语法进行开发,这...

2020-02-01 20:45:36 86943 47

原创 GPLT团体天梯赛 解题目录

对大多数20+的题目做了详细的说明,欢迎大家指出错误GPLT团体天梯赛 — 比赛技巧及知识点:https://blog.csdn.net/qq_40946921/article/details/88636096 号 题目 题解 L1-001 HelloWorld(5) ...

2019-05-21 21:51:00 2521 4

原创 GPLT团体天梯赛 — 比赛技巧及知识点

编程环境:提前适应比赛环境,避免比赛的时候出现突发情况。题型分析:L1:大多题目考察逻辑思维,比较多的是排序问题(结构体+sort)L2:涉及到数据结构和一些经典算法,最多的是最短路径问题(dfs)(L2的题目如果你能确定属于什么题型,过程就很简单了)L3:在L2的基础上多了计算几何的题目(对于我这种高数渣来说,看到这样的题目基本上是不去考虑的)比赛...

2019-03-18 13:16:27 11036 4

原创 PAT乙级 解题目录

有些题做得可能比较拙,有好方法,或者有错误还请告诉我,多多指教=.=思路比较好的题目我都有讲的很详细。另外有四道题没有写,自己的解法出了一些问题,而其他人的基本都一致,就暂时不看了  标题 题目链接 解题链接 1001 害死人不偿命的(3n+1)猜想 (15) Do it 提示 1002 写出这个数 (20) ...

2018-08-01 00:01:04 5338 1

原创 Vulkan 教程(1)开篇

Vulkan 系列教程

2021-12-02 23:04:07 4328 2

原创 博客转移到B站(用户名:-italink-)

博主潜心学习了大半年,编程技术可以说是有飞跃的提升(=.=)所以打算从头开始制作一些质量比较高的教程和代码分享,但由于CSDN的博客观感越来越差,决定在B站上继续创作,如果你对Qt或者OpenGL感兴趣的话,可以到B站查看我的专栏文章:-italink-的个人空间_哔哩哔哩_Bilibili...

2021-10-02 10:51:00 812

原创 Qt 脚本引擎实现思路

#include <QApplication>#include <QtDebug>#define SP_VALUE(type,name) \ Q_PROPERTY(type name READ get_##name) \ inline type get_##name() { return name; };\ type nameclass Value :public QObject{ //参数类 Q_OBJECTpublic:.

2021-05-11 15:13:25 1185

原创 Specinker资源分享

常用表达式分析:素材分享:waiting。。。

2021-04-30 18:53:27 6015 4

原创 Qt+FFMPEG学习(三)音频录制(dshow)

#include <QCoreApplication>extern "C"{ #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" #include "libavdevice/avdevice.h" #include "libavformat/avio.h" #include "libavutil/im.

2021-04-19 13:41:18 923

原创 Qt+FFMPEG学习(二)屏幕录制+实时显示(GDIGRAB)

widget.h#ifndef WIDGET_H#define WIDGET_Hextern "C"{ #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" #include "libavdevice/avdevice.h" #include "libavformat/avio.h" #include "...

2021-04-17 20:14:16 2312

原创 Qt+FFMPEG学习(一)视频帧转换为QImage

extern "C"{ #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" #include "libavdevice/avdevice.h" #include "libavformat/avio.h" #include "libavutil/imgutils.h"}#include <QString&g.

2021-04-17 14:14:49 1977 3

原创 QOpenGL入门教程(二)—— 第一个QOpenGLWidget程序

终于到了实际操作的环节了,这一章我们要做的是:创建OpenGL窗口 创建并编写着色器程序 为着色器程序装配顶点数据 启动渲染管线进行绘图第一步:创建新项目首先,我们使用Qt创建一个常规的QWidget项目,建议不要勾选ui设计器(个人习惯,笔者不太习惯于使用ui来设计)第二步:创建QOpenGLWidget并实现三个虚函数QOpenGLWidgetQt5.4之前,Qt可以通过一个QGLWidget类来创建OpenGL窗口,但由于opengl的发展,在5.4版本的时候,Qt提供

2021-03-19 00:07:00 7858

原创 QOpenGL入门教程(一)——OpenGL渲染管线

前言这是本教程的第一个篇章,你是否已经迫不及待的想动手写代码了?真是太可惜了,这一篇章我们并不会涉及到Qt和代码,而是说一些有用并且有意思的事情。没有进行思考就直接上手写代码会让你产生一些“先入为主”的错误观念,它们将成为你之后学习过程中的阻碍,因此,身体放松,然后沉住气,认真看完这一章,到之后你真正学习的代码时候就会发现自己tm跟开了挂一样:“卧槽,原来OpenGL这么简单!!!?”能够看到这篇文章,说明你大概率也是一名程序开发者,你为什么来学OpenGL呢?是因为兴趣使然,还是工作需要呢?如

2020-12-22 16:39:57 5489 11

原创 Qt Http下载文件夹

QNetwork本身无法根据QUrl获取到文件夹下的文件列表数据如果使用get请求对应文件夹路径的url会得到一个网页,这个网页就包含了文件列表,所以我们要做的,就是解析这个网页,把这些文件数据整理一下,再递归地访问子文件夹废话不多说,直接上代码:widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QNetworkAccessManager>#include <QNe

2020-12-09 21:39:12 934 2

原创 Spec素材说明——片段图形

制作这个素材是因为无意间发现一个非常炫酷的网站

2020-10-17 13:55:05 1398

原创 图形学小记(一)

1.已知两个世界矩阵A,B,求A相对于B的矩阵以2*2的矩阵为例,世界矩阵应用于顶点数据的运算过程如下根据矩阵转换后的结果来求A相对于B的结果,很容易得出结论:已知两个世界矩阵A,B,求A相对于B的矩阵,只需A-B2.射线与球体的相交检测参数化方程:设射线方程为f(x)= P +d t,圆方程为G(x)=||X-C||^{2}=R^{2},带人可得到一个二次线性方程组,利用二次线性方程组进行求解。排除法:检测射线起点是否在圆内。 检测射线的方向是否与到圆心的方向同向 计.

2020-09-20 09:51:10 272

原创 C/C++面试(三)

1.栈内存和堆内存的区别?为什么要区分?函数里面的变量是哪一种内存?栈内存由系统内存管理器自动创建和释放。堆内存可以在运行时动态申请和释放。区分是因为栈内存虽然存取速度很快,但固定大小,而在堆内存中则可以动态申请内存。函数里的变量(局部变量)、形参、临时变量使用的是栈内存。2.malloc和new的区别?malloc是C语言标准库的一个内存分配函数,作用是申请指定大小的空间,并返回一个void指针。而C++中的new是一个运算符,它除了内存分配还有调用对象的构造函数进行初始化,并返.

2020-09-19 19:19:41 348

原创 C++归并排序模板——支持lambda表达式,仿函数,迭代器

#include<iostream>#include<vector>using namespace std;template<typename _Iter, typename _Pred>void merge_sort(_Iter begin, _Iter end, _Pred pred) { if (begin + 1 >= end) return; size_t size = distance(begin, end); _Iter mid =.

2020-09-14 10:41:38 257

原创 C++快速排序模板——支持迭代器,lambda表达式、仿函数。

#include<iostream>#include<vector>using namespace std;template<typename Iter, typename Compare>void quick_sort(Iter begin, Iter end, Compare comp) { if (distance(begin, end) <= 1) //如果长度为1则无需排序 return; Iter low = begin;.

2020-09-13 13:04:29 410

原创 Specinker旧版博客

下载地址Specinker使用教程蓝奏云网盘下载https://italink.lanzous.com/ibe906f(使用winAPI绘图,占用高,功能多)新版本地址:https://www.lanzoux.com/iIcw4gj098h(使用OpenGL绘图,占用低,效果炫酷,功能少)博主有话说:喜欢音乐的小伙伴相信都或多或少看到过一些频谱,简单的比如QQ音乐,酷狗等一些音乐软件上面都有一些,可惜的是这些频谱嵌入到软件界面上,好看的就那么一两个,并不能满足一些人对音乐的渴望,至少

2020-09-11 18:48:13 5759 5

原创 Spec 使用教程

安装使用安装包安装spec,注意放到合适的路径之下注意安装路径中不能有中文字符,不要安装到非空目录,可以自己创建一个spec文件夹,安装到里面打开安装之后将自动创建桌面快捷方式,双击可以看到spec的主界面以及任务栏的spec图标鼠标左键双击spec的任务栏图标可以打开/隐藏主界面。完全退出主界面——关于——完全退出(窗口底部按钮)主界面说明文件界面:对皮肤文件进行管理如果你想把皮肤分享给其他人,可以鼠标右键点击皮肤——打开文件目录——返回上一级(也就是sp..

2020-09-11 11:19:54 21583 7

原创 Spec数据托管

版本号:2020_8_26更新历史:123456

2020-08-26 11:25:28 468

原创 Learn OpenGL with Qt——必备知识(易出错导致绘图失败的地方)

OpenGL Context(上下文)的概念:如果你使用过Qt的QPainter类的话,可能理解起来会简单一点,QPainter需要一个参数(PaintDevic)

2020-08-16 19:25:42 2626

原创 Specinker 频谱分析引擎库

博主最近把specinker的引擎给封装成一个静态链接库,如果你也会编程,并且喜欢频谱的话,你真是太幸运了!一些废话博主本以为封装成动态链接库,可以供那些能调用dll的语言(c/c++,java,python...)统一使用,想法不错,别说java,python,我从Qt移植到VS上都非常困难,原因是Qt默认的编译器是MinGW,生成的静态链接库文件是.a。而vs是无法解析.a,只能解析.lib库,于是是又用MSVC编译,链接各种系统库之后,能运行,但一调用又出错,原因是我代码中创建线程和使用Qt的

2020-07-10 19:41:24 1601

原创 OpenGL——使用几何着色器绘制平滑(bezier)曲线

效果图:顶点数据 float vertices[]={ -0.6f, -0.8f, 0.0f, //首尾填充 -0.6f, -0.8f, 0.0f, -0.4f, -0.3f, 0.0f, -0.2f, -0.5f, 0.0f, 0.0f, 0.4f, 0.0f, 0.2f, 0.4f, 0.0f, 0.3f, 0.1f, 0.0f,

2020-06-17 18:40:00 3391 1

原创 深信服校园招聘c/c++软件开发B卷

链接:https://www.nowcoder.com/test/23090664/summary1、位对齐编写函数align_n,将size的低n位(即:0到n-1位)清零,如果清零前size的低n位不为全零,则在第n位上加1。n满足32>n>0。align_n的函数原型:unsigned int align_n(unsigned int size, int n);输入描述:size(十六进制),n(十进制)输出描述:align_n的运算结果(十六进制)

2020-06-05 21:12:19 1138

原创 深信服校园招聘c/c++软件开发A卷

题目链接:https://www.nowcoder.com/test/23090658/summary1、围棋遍历函数calc计算围棋中位置(x,y)处连成一片的棋子个数。所谓连成一片,即沿着棋盘横竖线往任意方向遍历,遍历过程允许转弯,不允许走斜线,中间未出现对方棋子或空子。enum color { NONE, WHITE, BLACK, // 棋子颜色,NONE表示未落子};struct weiqi { enum color board[19][19...

2020-06-05 19:56:28 1396

原创 金山办公2020校招C++开发工程师笔试题(一)

11、框选线段在二维平面坐标系中,已知存在一条线段(图中P1->p2)和一个矩形区域,编程计算得出线段被矩形区域裁剪的新起始点。注意以下要求:A、线段是有方向的,裁剪得到的新线段也需要保持原线段的方向;下图中,线段的描述是P1->p2,则裁剪的结果是P3->p4,反之,如果线段描述是P2->P1,则结果是P4->P3B、线段的起始点在矩形区域里面时,裁剪的结果则就是原始线段C、当线段与矩形区域没有相交线段的时候,结果输出“-1”#include &lt

2020-06-04 13:56:47 1382 2

原创 C/C++编程面试题——单链表功能实现

#include <iostream>using namespace std;template<typename _Ty>struct Node { Node* next; _Ty data; Node(_Ty value = {}) :next(nullptr), data(value) {}};template<typename _Ty>class List { using pNode = Node<_Ty>*;public: /.

2020-06-03 14:49:50 277

原创 水纹(涟漪)特效壁纸——程序+实现原理

waitting

2020-06-01 18:27:19 1864 5

原创 Learn OpenGL with Qt——加载3D模型

模型现在是时候着手启用Assimp,并开始创建实际的加载和转换代码了。我们重新创建一个项目,回忆一下是否还能想起如何创建opengl窗口?——创建新项目(ModelLoading)——以QWidget为基类,取消勾选创建界面——修改Widget公有继承自QOpenGLWidget,QOpenGLExtraFunctions(注意引入头文件)——实现三个虚函数——在initializeGL中初始化opengl——在paintGL中清屏——在resizeGL中设置Viewpo..

2020-05-25 17:55:57 7730 36

原创 Learn OpenGL with Qt——模型加载:Qt搭建Assimp环境

Assimp到目前为止,我们已经在所有的场景中大面积滥用了我们的容器盒小盆友,但就是容器盒是我们的好朋友,时间久了我们也会喜新厌旧。一些图形应用里经常会使用很多复杂且好玩儿的模型,它们看起来比静态的容器盒可爱多了。但是,我们无法像定义容器盒一样手动地去指定房子、货车或人形角色这些复杂模型的顶点、法线和纹理坐标。我们需要做的也是应该要做的,是把这些模型导入到应用程序中,而设计制作这些3D模型的工作应该交给像Blender、3DS Max或者Maya这样的工具软件。那些3D建模工具,可以让美工们构建一些

2020-05-24 20:38:08 5790 34

原创 Learn OpenGL with Qt——投光物

投光物我们目前使用的光照都来自于空间中的一个点。它能给我们不错的效果,但现实世界中,我们有很多种类的光照,每种的表现都不同。将光投射(Cast)到物体的光源叫做投光物(Light Caster)。在这一节中,我们将会讨论几种不同类型的投光物。学会模拟不同种类的光源是又一个能够进一步丰富场景的工具。我们首先将会讨论定向光(Directional Light),接下来是点光源(Point Light),它是我们之前学习的光源的拓展,最后我们将会讨论聚光(Spotlight)。在下一节中我们将讨论如何将这

2020-05-20 15:07:50 754

原创 Learn OpenGL with Qt——光照贴图

光照贴图在上一节中,我们讨论了让每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观,但是这仍不能对一个物体的视觉输出提供足够多的灵活性。在上一节中,我们将整个物体的材质定义为一个整体,但现实世界中的物体通常并不只包含有一种材质,而是由多种材质所组成。想想一辆汽车:它的外壳非常有光泽,车窗会部分反射周围的环境,轮胎不会那么有光泽,所以它没有镜面高光,轮毂非常闪亮(如果你洗车了的话)。汽车同样会有漫反射和环境光颜色,它们在整个物体上也不

2020-05-18 21:12:45 871 1

原创 Learn OpenGL with Qt——材质

材质在现实世界里,每个物体会对光产生不同的反应。比如说,钢看起来通常会比陶瓷花瓶更闪闪发光,木头箱子也不会像钢制箱子那样对光产生很强的反射。每个物体对镜面高光也有不同的反应。有些物体反射光的时候不会有太多的散射(Scatter),因而产生一个较小的高光点,而有些物体则会散射很多,产生一个有着更大半径的高光点。如果我们想要在OpenGL中模拟多种类型的物体,我们必须为每个物体分别定义一个材质(Material)属性。在上一节中,我们指定了一个物体和光的颜色,以及结合环境光和镜面强度分量,来定义物体的视

2020-05-17 16:42:03 668 1

原创 Learn OpenGL with Qt——模板测试

先上代码,教程等更新到此是再细说:widget.h#ifndef WIDGET_H#define WIDGET_H#include "camera.h"#include <QOpenGLWidget>#include <QOpenGLExtraFunctions>#include <QOpenGLBuffer>#include <QOpenGLShaderProgram>#include <QOpenGLVertexArray

2020-05-17 15:58:22 627

原创 Learn OpenGL with Qt——基础光照

基础光照现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是我们有限的计算能力所无法模拟的。因此OpenGL的光照使用的是简化的模型,对现实的情况进行近似,这样处理起来会更容易一些,而且看起来也差不多一样。这些光照模型都是基于我们对光的物理特性的理解。其中一个模型被称为冯氏光照模型(Phong Lighting Model)。冯氏光照模型的主要结构由3个分量组成:环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。下面这张图展示了这些光照分量看起来的样子:环境光

2020-05-16 14:02:02 1721 10

原创 Learn OpenGL with Qt——颜色

颜色、在前面的教程中我们已经简要提到过该如何在OpenGL中使用颜色(Color),但是我们至今所接触到的都是很浅层的知识。本节我们将会更深入地讨论什么是颜色,并且还会为接下来的光照(Lighting)教程创建一个场景。现实世界中有无数种颜色,每一个物体都有它们自己的颜色。我们需要使用(有限的)数值来模拟真实世界中(无限)的颜色,所以并不是所有现实世界中的颜色都可以用数值来表示的。然而我们仍能通过数值来表现出非常多的颜色,甚至你可能都不会注意到与现实的颜色有任何的差异。颜色可以数字化的由红色(Red

2020-05-15 12:29:09 1459 2

原创 Learn OpenGL with Qt——完美的Qt摄像机

摄像机前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵移动场景(我们向后移动了一点)。OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。本节我们将会讨论如何在Qt中配置一个摄像机,并且将会讨论FPS风格的摄像机,让你能够在3D场景中自由移动。我们也会讨论键盘和鼠标输入,最终完成一个带有摄像机的窗口。摄像机/观察空间当我们讨论摄像机/观察空间(Camera/View Space)的

2020-05-10 13:02:56 7024 13

原创 Learn OpenGL with Qt——坐标系统

坐标系统在上一个教程中,我们学习了如何有效地利用矩阵的变换来对所有顶点进行变换。OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的x,y,z坐标都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为...

2020-05-08 11:16:18 3274 4

离散数学-逻辑判断系统

离散数学逻辑推理判断系统.

2018-10-27

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

TA关注的人

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