- 博客(101)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
转载 【二叉树】Morris遍历——不需要辅助空间的遍历方法
Morris 遍历是一种节省空间复杂度的方法。将叶子节点上的空指针利用起来,指向父节点,当再次遍历到这个节点的时候再修改回来,这样最后二叉树的结构也没有发生改变。
2022-02-22 16:49:11
233
原创 【队列】——PriorityQueue优先队列
优先队列不再遵循先入先出的原则:- 最大优先队列,不管入队顺序,当前最大的元素优先出队。- 最小优先队列,不管入队顺序,当前最小的元素优先出队。
2022-01-23 22:57:00
1245
3
原创 剑指Offer04:二维数组中的查找 C# 交错数组越界问题
在`int [][] martix={}`的情况下`matrix[0].length`会出现数组越界异常。因为如果数组`martix={}`,则不存在`matrix[0]`这样的情况,此时数组下标已经越界.只有满足`matrix.length=1`,才可以去判断 `matrix[0].length==0` (列数=0)所以在执行`matrix[0]`访问操作的前要确保数组存在且开辟了内存。
2021-12-29 00:04:04
853
原创 Unity中文离线文档以及提升访问速度
当前使用的unity版本2019.4LTS学了这么久的unity,每次在查询API的时候就特别麻烦,首先是官网的在线文档加载非常慢,经常会卡住,而且有时候左边目录经常不显示。跟随Unity一起下载的文档也是中文的,提高了查询难度,每次都得看好一会儿。为了解决以上问题,我找到了两个解决方案。Unity文档离线中文版通过访问对应版本的在线文档,Unity文档访问速度<link href="https://fonts.googleapis.com/css?family=Roboto&.
2021-10-13 10:03:39
2787
2
原创 Unity 如何让vscode和vs一样自动格式化C#代码
前言之前问过Unity大佬关于unity开发用什么编辑器,他们的回答就是什么方便用什么(关于vscode到底是不是ide这个问题…我觉得vscode更多的像是一个以编辑器为核心,通过插件集成达到ide的效果)。有大佬从vscode转到vs因为缺少代码自动补全(因为之前需要手动格式化),而VS自带代码格式化功能,所以在代码整洁度和易读性上更佳。也有从VS转到vscode,因为它更加的快捷。我2018年开始用的VS,那时候刚入门,整个界面功能太多太多了,一开始就劝退…熟悉VS都用了好久。后来写前端js,ts
2021-10-10 10:49:01
2992
原创 Unity C# 数据类型和内存分配的简单总结
值类型(Value types)值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。
2021-08-19 23:40:48
1268
1
原创 Unity安装安卓Andriod模块失败,显示已经安装模块,可以通过修改模块的配置文件重新安装模块。
问题安装的Unity版本是2019.4.28,本来想要打包到安卓平台试一下,但是下载Android模块的时候就总是报错,之后还删除了一次Unity,结果下回来Unity都出问题了,后来又下了一次,同样存在无法安装的问题。最后经过几个小时的查询终于解决了。删除之前的Andriod残留在你安装unity的版本的目录下存在AndroidPlayer目录,存放的就是安卓相关的包。直接删除这个文件夹,相当于直接删除了安卓组件。但是直接这样删除存在的一个问题就是,Unity Hub当中依然显示你已经安
2021-08-03 23:25:52
2394
1
原创 解决wordpress主题Fastos1.5.6使用出现Warning:Trying to access array offset on value of type bool in 556
问题问题内容在使用新的wordpress主题的时候出现了错误,如下图所示:Warning : Trying to access array offset on value of type bool in /www/wwwroot/blog.solye.cn/wp- content/themes/fasto/inc/functions/theme.php on line 556问题其实很简单,就是尝试在bool类型的数据上使用数组下标去访问。问题定位先在浏览器中定位对应的标签然后再到警告的
2021-07-14 21:59:26
3565
3
原创 腾讯云修复Sudo 本地提权漏洞(CVE-2021-3156)记录
今天腾讯云突然给我发消息说存在漏洞,因为我昨天重置了一下系统,使用镜像系统安装了宝塔和wordpress,然后就突然出现漏洞了,这样看来,刚买的时候应该是把一些漏洞什么的都给你解决了,重置系统后可能由于版本问题就没有修复漏洞。漏洞描述国外研究团队发现sudo堆溢出漏洞(CVE-2021-3156),漏洞隐藏十年之久,普通用户可以通过利用此漏洞,在默认配置的 sudo 主机上获取root权限。漏洞细节已在互联网上公开,腾讯安全专家提醒linux系统管理员尽快修复。 Sudo是一个功能强大的实用程序,大多数
2021-07-12 14:01:02
511
转载 Linux云服务器下WordPress博客搭建腾讯云教程
1.手动搭建 LNMP 环境LNMP 是 Linux、Nginx、MariaDB 和 PHP 的缩写,这个组合是最常见的 Web 服务器的运行环境之一。步骤1:登录 Linux 实例使用购买服务器的平台进行登录 Linux 实例使用远程登录软件winscp和putty 登录 Linux 实例使用 SSH 登录 Linux 实例步骤2:安装 Nginx执行以下命令,安装 nginx。yum install -y nginx编辑/etc/nginx/nginx.conf文件。找到serve
2021-07-10 23:16:10
195
原创 Unity简单的轻量级ECS框架 LeoECS中文文档
LeoECS - 简单的轻量级 C# 实体-组件-系统框架性能,零/小 内存 分配/占用空间,这个项目的主要目标——不依赖于任何游戏引擎。**重要!**它是“基于结构”的版本,如果你搜索“基于类”的版本-检查基于类的分支!本框架要求C#7.3或以上。**重要!**不要忘记在生产环境中使用调试版本进行开发和发布版本:所有内部错误检查/异常抛出只在调试版本中起作用,并在发布环境中出于性能原因而被删除。**重要!**Ecs核心API不安全,永远不会安全!如果您需要多线程处理-您应该在您的e
2021-07-10 10:33:32
2196
2
原创 Chrome谷歌浏览器打开任何网页不加载css,刷新后才加载
今天突然遇到个奇怪的bug本来好好的看着网页,然后我用电脑管家清理了一下垃圾,之后在使用Chrome打开任何网页就突然不加载css样式了,刷新页面后才能加载。我不敢确认两者之间一定存在着关系,但是突然加载不了是真的…解决办法很简单,就是清理一下浏览器缓存...
2021-06-27 23:45:27
1823
原创 数字图像处理——图像艺术化处理OpenCV实验四艺术化效果和风格化效果
实验一.实验目的(1) 了解各种图像艺术化处理方法的原理。(2) 掌握各种艺术化处理方法的实现过程。二.实验内容和要求编程实现三种以上艺术化处理方法,三类效果中每类至少实现两种。三.实验主要仪器设备和材料计算机, VS2019+openCV四.实验原理与实验步骤1.艺术化效果(1)黑白照片制作我们通常说的黑白照片并不是数字图像中的二值图,而是灰度图。由彩色图像转化为灰度图像的过程叫做灰度化处理。一般情况下彩色图像每个像素用3个字节表示,每个字节对应着R、G、B分量的亮度(红、绿、蓝),
2021-06-26 10:04:04
2720
原创 数字图像处理扭曲效果——球面效果
球面效果球面效果是将图像中部隆起成球形,使对象具有立体凸起效果,就像哈哈镜中的图像一样。其实现类同于挤压效果,也可以看成是极坐标的一种体现。设坐标表示和挤压效果一致,那么球面效果满足的关系如式(4-7)所示://球面效果/哈哈镜int newX = center.x + (int)(pow(rou, 2) / max(center.x, center.y) * cos(theta));int newY = center.y + (int)(pow(rou, 2) / max(center.x, c
2021-06-26 10:01:38
721
原创 数字图像处理扭曲效果——挤压效果
挤压效果挤压效果是将图像向内挤压,产生收缩变形。挤压效果的实现可以看成是数学极坐标的一种体现,将当前像素点、图像正中心点和过中心点的水平线这三要素画出一个极坐标,然后根据用户指定的挤压度,在当前点与中心点所连的直线上映射出一个像素点,最后将这个像素点作为目标点输出。设原图像上的点坐标用(x’,y’)表示,挤压效果图上的点坐标用(x,y)表示,图像正中心点坐标为(midx,midy),ρ和θ表示点(x,y)所在极坐标系对应的极值和极角,degree为挤压度,取值为[1,32],那么挤压效果满足的关系如下式
2021-06-26 09:59:13
1059
2
原创 数字图像处理风格化效果——霓虹效果
霓虹效果霓虹效果用来描绘图像的轮廓,勾画颜色变化的边缘,产生轮廓发光的效果。先计算原图像当前像素f(i,j)的红、绿、蓝分量与其相同行f(i+1,j)及相同列f(i,j+1)相邻像素的梯度,即差的平方和的平方根,然后将梯度值作为处理后像素g(i,j)的红、绿、蓝的3个分量。上式中r1,g1,b1分别为原图像像素f(i,j)的红、绿、蓝分量值,r2,g2,b2分别为原图像同行相邻像素f(i+1,j)的红、绿、蓝分量值,r3,g3,b3分别为原图像同列相邻像素f(i,j+1)的红、绿、蓝分量值,Red,G
2021-06-26 09:57:28
609
原创 数字图像处理风格化效果——浮雕处理
浮雕浮雕效果针对灰度图像处理,就是只将图像的变化部分突出出来,而相同灰度部分则被淡化,使图像出现纵深感,从而达到浮雕效果。将要处理的像素取值为与处于前一个相邻像素间的差值,这样灰度平淡区因差值几乎为零则变成黑色,可以通过加上一个常量来增加一些亮度。其中,G(i,j)为处理后图像的像素值,f(i,j)为原图像的像素值,f(i-1,j)为前一个相邻像素的值,常量通常取值为128。//浮雕Mat Enchase(Mat src, int con) { //针对灰度图像处理 Mat output(sr
2021-06-26 09:55:33
1121
原创 数字图像处理风格化效果——马赛克处理
马赛克处理马赛克效果,其原理是将图像从形式上划分为很多小块(5*5),在每块内的各个像素都取到相同的红、绿、蓝颜色值,如块内任意一像素的值。从而对某些细节进行模糊化处理,使图像具有马赛克效果。//马赛克//Mat Mosaic(Mat src, int rectangleLenth) { Mat output(src.size(), CV_8UC3); //取中心的像素值 for (int i = 0; i < src.rows; i += rectangleLenth) { fo
2021-06-26 09:54:42
1519
4
原创 数字图像处理艺术化效果——怀旧效果(泛黄旧照片)
怀旧效果处理怀旧效果一般用在一些相片处理上,使整张相片呈棕褐色,仿佛相片已保存很久,已经发黄。方法是对每个像素的RGB分量按照公式(4-2)赋值://怀旧Mat OldStyle(Mat src) { Mat output(src.size(), CV_8UC3); for (int i = 0; i < src.rows; i++) { for (int j = 0; j < src.cols; j++) { float R = src.at<Vec3b>(i
2021-06-26 09:52:59
521
原创 数字图像处理艺术化效果——染色
染色效果处理染色效果在数字图像处理中又叫伪彩色处理,即把整幅图像染成一种给定的色调。方法是指定一种渲染颜色,然后用当前像素的灰度分别乘以指定颜色的R、G、B三分量,并将结果作为当前像素的最终颜色。//染色Mat AddColors(Mat src) { Mat output(src.size(), CV_8UC3); for (int i = 0; i < src.rows; i++) { for (int j = 0; j < src.cols; j++) { outpu
2021-06-26 09:51:11
298
转载 js中require 和 import 引入依赖的区别解析
require 和 import,都是为了JS模块化使用。最近项目中,因为多人协同开发,出现了一个项目中同时使用了require 和 import 引入依赖的情况。正常情况下,一个项目中最好是对引入方式做一个规范。下面我们就来看一下require 和 import的区别:一、requirerequire是Commonjs的规范,node应用是由模块组成的,遵从commonjs的规范。用法://a.jsfunction test (args) { // body... console.log
2021-06-24 11:39:02
1052
原创 electron中引入本地bootstrap报错Uncaught Error: Bootstrap‘s JavaScript requires jQuery at bootstrap.min.js:6
cdn引入(正常)通过cdn方式引入是不会报错的。src引入(报错)然后我用npm下载了bootstrap和jquery,使用src方式引入居然报错了。原因当引入jQuery和bootstrap文件时会报错的原因是:electron 的 Renderer 端因为注入了 Node 环境,存在全局函数 require,导致jquery 内部环境判断出现问题。require引入(正常) <script> window.$ = window.jQuery = r
2021-06-24 11:20:36
388
原创 electron官方快速入门的Issue报错Content Security Policy of your site blocks the use of ‘eval‘ in JavaScript`
写在前面这个Issue不影响本地的文件加载,因为默认策略就是只能加载本地,它是提醒你现在能加载的location,如果有其他的加载就需要修改CSP策略。issue使用官方的入门文档发现了一个issue官方的html代码<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <!-- https://developer.mozilla.org/en-US/docs/Web/H
2021-06-23 23:36:41
10555
原创 快速帮理解Unity中的协程Coroutine
协程的概念Unity协程(Coroutine),可以用来实现一些延时处理的需求,C#中通过yield return语句配合可以中断执行,延时一定时间后从中断处继续执行。协程不是线程,协程还是在主线程里执行的。所以就不需要考虑同步和锁的问题。原理官方文档执行顺序的流程图http://docs.unity3d.com/uploads/Main/monobehaviour_flowchart.svgUnity的协程应该是一个扩展成支持嵌套的迭代器(IEnumator)。它将c# IEnumera
2021-06-22 14:43:35
477
2
原创 数字图像处理——OpenCV中的结构元和腐蚀膨胀使用
结构元getStructuringElement函数会返回指定形状和尺寸的结构元素。Mat getStructuringElement(int shape, Size esize, Point anchor = Point(-1, -1));这个函数的第一个参数表示内核的形状,有三种形状可以选择。矩形:MORPH_RECT;交叉形:MORPH_CROSS;椭圆形:MORPH_ELLIPSE;第二和第三个参数分别是内核的尺寸以及锚点的位置。一般在调用erode以及dilate函数之前,先定义
2021-06-22 00:26:35
1263
2
原创 数字图像处理艺术化效果——彩色图像转化为灰度图像(黑白照片)
灰度图像(黑白照片)我们通常说的黑白照片并不是数字图像中的二值图,而是灰度图。由彩色图像转化为灰度图像的过程叫做灰度化处理。一般情况下彩色图像每个像素用3个字节表示,每个字节对应着R、G、B分量的亮度(红、绿、蓝),转换后的灰度图像的一个像素用一个字节表示该点的灰度值,它的值在0~255之间,数值越大,该点越白,即越亮,越小则越黑。转换关系为:其中Gray(i,j)为转换后的灰度图像在(i,j)点处的灰度值。灰度图只能表现256种颜色,灰度化处理还有其他的方法,如:取3个分量的最大值、最小值、算术平
2021-06-21 00:24:28
1833
原创 数字图像处理——图像的阈值分割和边缘检测OpenCV实验三图像分割
实验三 图像分割实验一.实验目的(1)进一步理解图像的阈值分割方法和边缘检测方法的原理。(2)掌握图像基本全局阈值方法和最大类间方差法(otsu法)的原理并编程实现。(3)编程实现图像的边缘检测。二.实验内容和要求编程实现图像阈值分割(基本全局阈值方法和otsu法)和边缘检测。三.实验主要仪器设备和材料计算机,VS+OpenCV四.实验原理与方法1、图像的阈值分割的基本原理图像的二值化处理图像分割中的一个主要内容,就是将图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效
2021-06-13 17:04:22
4648
原创 解决:3dmax渲染完后直接卡死只能重启
问题在渲染完图像后3dmax会直接卡死崩溃,然后只能重启,我就因为这个浪费了好多时间在重启上面。原因是微软输入法的原因,好像和3dmax的版本不兼容导致的,一开始我还奇怪为什么和输入法扯上关系,后来想想也就释然了,在玩游戏的时候经常也会因为卡输入法而导致游戏的崩溃。解决办法在微软输入法设置当中打开兼容模式,使用旧版本的输入法。右键打开设置这里选择常规拉到最下面,打开兼容,确定即可。然后就可以尽情渲染,不用担心渲染一次后就会卡死的情况。...
2021-06-13 17:02:40
19060
13
原创 解决 electron require()报错:Uncaught ReferenceError: require is not defined
问题渲染进程里无法使用node模块Uncaught ReferenceError: require is not defined渲染进程的代码let electron = require('electron'); // 引入electron模块let app = electron.app; // 创建electron引用let BrowserWindow = electron.BrowserWindow; // 创建窗口引用let mainWindow = null; // 声明要打开的主窗
2021-06-09 15:40:06
9408
8
原创 Qt输出到控制台的方法集合
使用c++的iostream输入输出流如果输出的是Qstring对象,需要转换成std可输出的string。#include<iostream>using namespace stdQString A="一二三";cout<< A.toStdString() <<endl;使用Qt的qDebug()第一种用法相当于c++中的cout,使用规则都一样; 可以连接字符串#include "QDebug"QString a = "一二三";qDebu
2021-06-08 20:54:04
3886
原创 解决:Qt文件路径选择后读取输出乱码的问题
问题通过QFileDialog选取文件路径,打印后出现乱码问题中间的是我转换后的打印结果原因QString 是Qt内置字符类型,是默认用unicode编码的。只要你使用QString创建字符串对象最后都是unicode编码,不管你原来是GBK,GB2312还是utf-8,他会进行默认的转换。而windows中文版的文件路径用的是gbk编码,所以需要转回到gbk解决添加文本编码头文件,创建编码对象#include "QTextCodec" QTextCodec *code =
2021-06-08 16:51:38
1133
原创 CocosCreator v3.x动态加载绑定dragonbones骨骼动画资源
在尝试使用2d骨骼动画的时候,需要动态加载不同的骨骼资源,于是尝试使用脚本进行不同资源文件的加载。可以先参考官方的dragonbones龙骨demo写在前面龙骨动画需要在先在节点上添加dragonbones.amartureDisplay组件。同时也要注意这个节点的渲染层级和摄像机的渲染层级,摄像机自动创建的话应该是UI_2D,而普通空节点的创建是default,那么这个节点是不会被渲染的。静态绑定dragonbones资源的对应关系。你可以直接拖动资源进行静态绑定。然后通过修改Socke
2021-06-03 23:37:34
1729
原创 CocosCreator报错: [preview-error]TypeError: Converting circular structure to JSON
报错原因我是在调用异步加载函数的时候,直接用button事件调用了一个封装后的异步函数,没有传入路径参数,而是应该调用上面那个传了路径的函数。由此可见,调用没有传参的resources.load会导致报错,所以要确保封装后的函数有路径的传入,并对参数进行检查,同时对错误进行抓取抛出。...
2021-06-02 22:47:58
439
请问 我这个批处理命令 call 一个标签后 为什么无法获取标签里面设置的变量
2021-05-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人