自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 桌面音乐可视化软件—Specinker

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

2020-02-01 20:45:36 17998 14

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

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

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

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

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

2019-03-18 13:16:27 708 1

原创 PAT乙级 解题目录

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

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

原创 Specinker 频谱分析引擎库

博主最近把specinker的引擎给封装成一个静态链接库,如果你也会编程,并且喜欢频谱的话,你真是太幸运了! 一些废话 博主本以为封装成动态链接库,可以供那些能调用dll的语言(c/c++,java,python...)统一使用,想法不错,别说java,python,我从Qt移植到VS上都非常...

2020-07-10 19:41:24 25 0

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

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

2020-06-17 18:40:00 71 0

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

链接:https://www.nowcoder.com/test/23090664/summary 1、位对齐 编写函数align_n,将size的低n位(即:0到n-1位)清零,如果清零前size的低n位不为全零,则在第n位上加1。n满足32>n>0。 align_n的函数原型...

2020-06-05 21:12:19 244 0

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

题目链接:https://www.nowcoder.com/test/23090658/summary 1、围棋遍历 函数calc计算围棋中位置(x,y)处连成一片的棋子个数。所谓连成一片,即沿着棋盘横竖线往任意方向遍历,遍历过程允许转弯,不允许走斜线,中间未出现对方棋子或空子。 enum ...

2020-06-05 19:56:28 222 0

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

11、框选线段 在二维平面坐标系中,已知存在一条线段(图中P1->p2)和一个矩形区域,编程计算得出线段被矩形区域裁剪的新起始点。 注意以下要求: A、线段是有方向的,裁剪得到的新线段也需要保持原线段的方向;下图中,线段的描述是P1->p2,则裁剪的结果是P3->p4,反之...

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

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

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

2020-06-03 14:49:50 75 0

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

waitting

2020-06-01 18:27:19 157 0

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

模型 现在是时候着手启用Assimp,并开始创建实际的加载和转换代码了。我们重新创建一个项目,回忆一下是否还能想起如何创建opengl窗口? ——创建新项目(ModelLoading) ——以QWidget为基类,取消勾选创建界面 ——修改Widget公有继承自QOpenGLWidget,...

2020-05-25 17:55:57 104 0

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

Assimp 到目前为止,我们已经在所有的场景中大面积滥用了我们的容器盒小盆友,但就是容器盒是我们的好朋友,时间久了我们也会喜新厌旧。一些图形应用里经常会使用很多复杂且好玩儿的模型,它们看起来比静态的容器盒可爱多了。但是,我们无法像定义容器盒一样手动地去指定房子、货车或人形角色这些复杂模型的顶点...

2020-05-24 20:38:08 139 0

原创 Learn OpenGL with Qt——投光物

投光物 我们目前使用的光照都来自于空间中的一个点。它能给我们不错的效果,但现实世界中,我们有很多种类的光照,每种的表现都不同。将光投射(Cast)到物体的光源叫做投光物(Light Caster)。在这一节中,我们将会讨论几种不同类型的投光物。学会模拟不同种类的光源是又一个能够进一步丰富场景的工...

2020-05-20 15:07:50 78 0

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

光照贴图 在上一节中,我们讨论了让每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观,但是这仍不能对一个物体的视觉输出提供足够多的灵活性。 在上一节中,我们将整个物体的材质定义为一个整体,但现实世界中的物体通常并不只包含有一种...

2020-05-18 21:12:45 73 0

原创 Learn OpenGL with Qt——材质

材质 在现实世界里,每个物体会对光产生不同的反应。比如说,钢看起来通常会比陶瓷花瓶更闪闪发光,木头箱子也不会像钢制箱子那样对光产生很强的反射。每个物体对镜面高光也有不同的反应。有些物体反射光的时候不会有太多的散射(Scatter),因而产生一个较小的高光点,而有些物体则会散射很多,产生一个有着更...

2020-05-17 16:42:03 81 0

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

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

2020-05-17 15:58:22 84 0

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

基础光照 现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是我们有限的计算能力所无法模拟的。因此OpenGL的光照使用的是简化的模型,对现实的情况进行近似,这样处理起来会更容易一些,而且看起来也差不多一样。这些光照模型都是基于我们对光的物理特性的理解。其中一个模型被称为冯氏光照模型(Ph...

2020-05-16 14:02:02 120 2

原创 Learn OpenGL with Qt——颜色

颜色、 在前面的教程中我们已经简要提到过该如何在OpenGL中使用颜色(Color),但是我们至今所接触到的都是很浅层的知识。本节我们将会更深入地讨论什么是颜色,并且还会为接下来的光照(Lighting)教程创建一个场景。 现实世界中有无数种颜色,每一个物体都有它们自己的颜色。我们需要使用(有...

2020-05-15 12:29:09 65 0

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

摄像机 前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵移动场景(我们向后移动了一点)。OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。 本节我们将会讨论如何在Qt中配置一个摄像...

2020-05-10 13:02:56 194 0

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

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

2020-05-08 11:16:18 301 0

原创 Learn OpenGL with Qt——变换
原力计划

变换 尽管我们现在已经知道了如何创建一个物体、着色、加入纹理,给它们一些细节的表现,但因为它们都还是静态的物体,仍是不够有趣。我们可以尝试着在每一帧改变物体的顶点并且重配置缓冲区从而使它们移动,但这太繁琐了,而且会消耗很多的处理时间。我们现在有一个更好的解决方案,使用(多个)矩阵(Matrix)...

2020-05-07 12:39:07 160 0

原创 Learn OpenGL with Qt——纹理

我们了解到,我们可以为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像。但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多的颜色。这将会产生很多额外开销,因为每个模型都会需求更多的顶点,每个顶点又需求一个颜色属性。 艺术家和程序员更喜欢使用纹理(Texture)。纹理...

2020-05-05 13:06:30 155 0

原创 Learn OpenGL with Qt——着色器

在上一节教程中提到,着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。 前面的教程里我们简要地触及了一...

2020-05-04 12:02:21 154 0

原创 Learn OpenGL with Qt——你好,三角形

在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。 3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一...

2020-05-03 15:11:26 207 0

原创 Learn OpenGL with Qt——创建窗口

QOpenGLWidget Qt5.4之前,Qt可以通过一个QGLWidget类来创建opengl窗口,但由于opengl的发展,在5.4版本的时候,Qt提供了一个QGLWidget的现代替代品——QOpenGLWidget。因此,这个教程使用的是QOpenGLWidget来创建和管理窗口。 ...

2020-05-03 12:37:28 134 0

原创 Learn OpenGL with Qt——OpenGL简述

OpenGL 在开始这段旅程之前我们先了解一下OpenGL到底是什么。一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),包含了一系列可以操作图形、图像的函数。然而,OpenGL本身并不是一个API,它仅仅是一个由Khronos组织...

2020-05-03 10:07:13 106 0

原创 Learn OpenGL with Qt—— 简介

笔者序言 笔者最近在通过learnopengl网站学习opengl,但这个系列的教程使用的是原生的openGL函数以及GLFW来管理窗口,而Qt对OpenGL有着很好的支持,可惜的是网络上关于Qt 现代OpenGL的教程比较匮乏,因此笔者打算通过使用Qt来制作一期openGL的教程,内容板块与l...

2020-05-03 09:14:02 131 0

原创 C++简易版vector(动态机制实现)

#include<iostream> #include<vector> using namespace std; template<typename _Ty> class Vector { public: Vector(const int& si...

2020-03-27 15:11:08 90 0

原创 C++ string详解

头文件<string> 注意是<string>而不是<string.h>或<cstring> string: string是C++标准库中提供的一个序列式容器,可以使用它来存储字符串,且string还封装了一些字符串的常用方法,使得字符串操作...

2020-03-13 12:30:44 75 0

原创 OpenGL学习笔记(一)——你好,三角形(结构简化,详细注释)

学习网址 https://learnopengl-cn.readthedocs.io/zh/latest/01%20Getting%20started/04%20Hello%20Triangle/ #include<iostream> #define GLEW_STATIC #i...

2020-02-23 15:23:02 106 0

原创 音乐可视化specinker重构开发日志

重构前后对比: 由于期末临近,同学哀求老师给时间复习,就推迟到考试结束一星期之后,这也给了充足的时间,对软件进行了一次彻彻底底的重构!! 有多彻底?我重构之前这个项目的代码只界面部分就已经七千多行了,这次重构小到基本控件,大到整个界面,引擎,都重新写了,唯一留下的,还是那个颜色选择控件...

2020-01-29 16:35:48 894 0

原创 音乐可视化第二次演讲PPT

说明: 第二次演讲是在开学后第十周,在演讲前几天无意发现AE也可以制作频谱,并且效果很炫酷!!我就在想我能不能也做一个类似的东西,况且我也有桌面显示这个强大的优势! 此次临时变更软件定位为音乐播放器+频谱设计器+桌面频谱,但程序还没来得及变更,不过这次的ppt有很认真的做-.- 开发: 本...

2020-01-29 15:44:35 422 1

原创 音乐可视化第一次演讲PPT

说明 初次将软件定位为 桌面频谱+音乐播放器 第一次演讲在开学之后的第五周,此时音频分析引擎基本完成,能够播放音频显示简单的音频简单频谱。看过雨滴制作的一些皮肤之后,感觉效果不是很理想。 演示视频 频谱播放器测试视频 ...

2020-01-29 14:55:15 506 0

原创 L3-004 肿瘤诊断 (30)(精简40行 思路)

L3-004肿瘤诊断(30分) 在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环。给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积。 输入格式: 输入第一行给出4个正整数:M、N、L、T,其中M和N是每张切片的尺寸(即每张切片是一个M×N的像素矩阵。最大分辨率是1286×128);L(...

2020-01-15 12:46:09 273 0

原创 Specinker使用教程

环境配置: 由于该软件是采集系统声音,而不是通过底层钩子直接采集声卡数据,所以请务必开启立体声混音,并且将之设置为默认设备,否则软件无法采集音频数据,开启后重启软件即可=.= win7立体声混音开启教程 win10立体声混音开启教程 注意立体声混音的属性-高级-默认格式最好修改为2通道,1...

2020-01-01 12:51:32 6885 0

原创 设计模式总览

一、简单工厂模式 定义: 定义一个工厂类,它可以根据不同参数返回不同类的实例,这些被创建的类往往有共同的父类 结构: 工厂角色 抽象产品角色 具体产品角色 优点: 1.将对象的创建和使用分离 2.只需记住具体产品类所对...

2019-12-18 12:49:49 51 0

原创 设计模式概述

1.设计模式的定义 设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了类与对象的相互作用。 2.设计模式的基本要素 模式名称:模式的名称,一般根据其功能或模式结构命名。 问题:描述设计模式的适用情况(描述所解决的问题以及问题存在的原因)。 ...

2019-12-17 22:06:04 57 0

原创 PL0扩展一维数组array

PL0语言数组变量类型文法可定义为: Var <数组变量名> ’(‘<下界>,<上界>’)’ 其中<下界>,<上界>是常量名或无符号数 引用格式可为:C(1),c(a),C(a+b),C(b+C(1)) 头文件修改: 1、增加冒...

2019-12-11 22:24:34 472 0

原创 解决VS2017/2019 使用scanf、printf等函数【不安全报错】问题

报错原因: 使用scanf,printf读写字符串的时候,会出现越界的情况。 比如,你定义了一个char [5]的字符串,但你却用scanf输入了一个20长度的字符串,依然能输入成功,超出的部分就会越界覆盖不属于自己的数据。printf也类似,它是因为C风格的字符串以'\0'...

2019-12-10 18:05:00 2540 1

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