- 博客(99)
- 问答 (7)
- 收藏
- 关注
原创 银行家算法
银行家算法是一个避免死锁的算法,用银行家放贷作为示例,银行家在放贷是需要评估放贷后是否还有能力为其他用户放贷,如果能做到则可以放贷给用户,否则则收回。在计算机中也是类似的操作,操作系统给进程分配资源时,需要评估分配完资源后整个系统是否还能够正常运行。整个算法由三部分组成:算法所用的数据结构,算法整体描述,安全性检测子算法。
2024-04-25 17:25:52 978
原创 浏览器性能优化
有一些函数在运行时需要进行一些判断,但是这个判断只需要执行一次,代码一旦运行判断结果就不会改变,这样的函数称为惰性函数,可以使用下面的手段来进行优化。在Vue中有一些数据仅仅只做展示而不回去修改它,这些数据我们就可以冻结起来,被冻结的对象讲无法进行任何修改。
2023-10-06 18:05:32 321
原创 Canvas绘图
随着前端的不断发展,页面特效越来越炫酷,W3C组织也不断退出新的CSS特性:例如各种渐变,瀑布流布局,各种阴影,但是随着需求越来越花哨,W3C表示:我去你妈的,你自己画去吧。于是浏览器就暴露出了Canvas API让用户自己实现各种炫酷的效果。学习过浏览器的渲染过程,我们可以知道其实浏览器的窗口本身就是一个画布,他根据DOM和CSSOM不断得生成绘制指令来重绘页面。Canvas其实就是浏览器将绘制指令封装成API给用户进行调用,这也是为什么Canvas的性能要比直接操作DOM的性能更高的原因。
2023-10-06 18:04:39 313
原创 Javascript文件上传
抛开文件上传的外衣,其实就是界面交互和网络请求。学了这么多的场景,应该足以应对绝大多数的场景,对于element-ui或者是ant等组件库内提供的文件上传组件也能做到知其然且知其所以然。也学到了对于图片文件的很多处理方式。学到了File和Blob的转换。对于File和Blob,其实不只是用于图片文件,任何格式的文件在浏览器中都会被打平为File和Blob,只不过不同的文件需要用到不同的辅助处理。
2023-10-06 18:03:41 4449
原创 【前端基础】函数式排列
浏览器默认的坐标系,是以左上角为原点,向右为x轴,向下为y轴。这个坐标系与数学中使用的坐标系不符,为了更方便使用函数来描述页面的布局,需要使用css来对浏览器的坐标系进行变换。下面的css自定义了--x和--y两个自定义属性,通过clac动态计算的方式,实现了以正中心为原点,向右为x轴,向上为y轴的坐标系。通过--x和--y两个属性来指定坐标。
2023-07-19 22:43:56 282
原创 Pixi + Tone 实现简单midi音频可视化
这个currentMidi中存储了midi文件的音轨,音符,乐器等信息。在页面中添加一个按钮并绑定事件,用于播放音频,下面这段代码里有用到Tonejs创建合成器播放声音的代码。有没有懂设计模式的,可以帮我优化下代码嘛,定义了一个全局变量currentMidi总觉得不舒服。首先需要讲midi文件导入紧浏览器,由于浏览器的安全限制,我们只能使用文件选择器讲文件导入。为了尽可能得跟音频同步减小延时,我们使用Tonejs的音频调度。到这里就可以实现MIDI文件的播放了。我们使用灯管类作为每一个音符的可视化。
2023-07-14 17:07:03 1690
原创 hexo + github 创建个人博客网站
hexo 是一个静态博客生成网站,可以快速制作自己的博客网站并部署。默认的hexo页面比较难看,我用了一个明日方舟风格的主题来进行美化。创建一个名为[用户名].github.io的仓库。就可以新建一个md文件,对这个文件进行编辑。
2023-05-12 20:57:40 673 1
原创 web游戏---canvas基础图形
canvas是H5中新推出的标签,这个提供一块画布,可以在上面绘制图案,通过这种方式制作web游戏带来的性能消耗比操作DOM要小的多。如果知做浏览器游戏,为了保证性能最好使用画布来制作。
2023-01-26 21:16:56 2272
原创 核心乐理---音程名称
音程是连个音之间的距离,是音乐中的距离,可以便于我们描述音符间的距离,便于与他人进行沟通交流。就好像是厘米,米这些这些物理中的长度单位一样。
2023-01-11 18:27:58 724
原创 unity学习笔记--day01
3-2. 定义一个怪物卡类,继承自卡牌类,添加独有的攻击力,最大生命和当前生命。定义一个空物体命名为CardStore,并定义一个名为CardStore的脚本文件,用来读取卡牌数据。将相关的物体关联好,这样在点击抽卡按钮时,就会随机在页面上展示5张卡片。按钮组件也是UI组件的一种,可以选择编写的组件中的方法作为点击事件。在类中定义相关的UI属性,并用Card中的数据对UI属性进行赋值。定义一个空物体并添加网格布局组件,用于展示抽到的卡。3-1. 首先定义一个卡牌类,定义卡牌上通用的属性。
2022-12-17 16:01:15 1781
原创 jquery转vue项目总结
将表单数据和页面中的一些资源抽离到data中去,实现双向数据绑定,这样做还可以将数据集中在一起统一管理,便于日后的修改。由于原来的页面很多的动效是依赖jquery实现的,为了方便这里不再重写,直接把原来的相关代码拿来用。由于要修改的项目只有一个页面,因此脚手架只需要配置babel即可。修改完成之后,某些功能出现的问题,暂时先这样,解决之后再来填坑。将页面中重复出现的部分抽离为组件,并使用props将数据传入。对于列表形似的数据改用v-for书写,减小代码量。
2022-11-03 16:48:59 1663
原创 概率论与数理统计---随机变量的分布
随机变量就是随机事件的数值体现。例如投色子记录色子的点数,记录的点数其实就是一个随机变量,他是这个点数出现的数值体现。
2022-10-05 21:10:44 3096
原创 概率论与数理统计---基本概念
事件就是发生的某种情况,可以用一个集合来表示,这个集合必然是样本空间的子集。还是用色子来举例,点数为1就是一个基本事件,对应的集合为。随着实验次数的增加,频率会在某个数值附近波动,这个数值被称为概率。随机事件就是要研究的事件,所有其他的事件都被属于随机事件。基本事件的个数为有限个,并且每个基本事件的可能性都相同。事件A在n次实验中发生了m次,则事件的概率为。有无限的样本点,每个样本点出现的可能性相等。的事件,也就是必然事件的集合和样本空间相同。当事件结果的集合中对应元素出现时,则称为。
2022-09-20 18:00:00 1340 3
原创 大二网页制作实习总结
第一天讨论确定下要做的内容,打算制作传统节日相关的。因为需要分工合作,使用的工具也都不同,所以不能使用脚手架和webpack来工程化开发。搭建的目录结构如下:每个文件夹内留出一个index.html与其他模块进行链接,我负责制作中秋模块。
2022-09-19 09:05:03 26348 12
原创 node---express
express是基于node的一个服务器框架,它是对http模块的封装,简化了node服务器的创建。目前已经有不错的生态,但他的作者又制作了koa2,我觉得这个东西估计用不久,简单看看就好了。
2022-08-31 15:12:33 425 1
原创 node---模块
自定义模块必须以./ 或者 …/开头自定义模块如果省略的文件的扩展名,则会按照下面的顺序来查找无扩展名补全js补全json补全node报错npm 是node的一个包管理工具,内置了许多指令来管理包。npm i 可以安装包,在安装时可以使用@来指定版本npm -v 查看npm的版本npm init -y 用来初始化项目,创建package.jsonnpm i 可以安装package.json中的所有依赖包。...
2022-08-27 21:23:25 303
原创 React---路由
在vue中学习过:在单页面应用程序中,所有的内容都存放在一个页面中,需要一套机制来管理这些内容,这个机制就是路由。前端路由就是根据路径的变化,控制页面展示内容的变化。在React中的表现就是路径和组件的对应关系关于react-router@6这个教程很详细。......
2022-08-08 19:19:35 287
原创 React---简单原理
这个函数接收两个参数,最新的state和最新的props(这两个参数是动态的,函数处于异步队列中时也会更新)setState可以接收一个函数作为第二个参数,作为在状态更新之后执行的回调函数。纯组件和一般组件的区别在于纯组件内部会自动实现组件渲染的钩子函数。当父组件更新时子组件也会跟着更新,即使子组件没有任何变化。在组件状态更新后会更新当前组件及其子组件(所有后代组件)传入一个回调函数,回调函数返回对象作为要更新的状态。React在更新时只更新变化的地方,做到部分更新。...
2022-08-08 15:17:18 176
原创 高数---级数
这样一个级数:∑n=1∞f(n)=f(1)+f(2)+f(3)+...+f(n)+...\sum_{n=1}^\infty f(n) = f(1) + f(2) + f(3) + ... + f(n) + ...∑n=1∞f(n)=f(1)+f(2)+f(3)+...+f(n)+...S(n)=f(1)+f(2)+f(3)+...+f(n)S(n) = f(1) + f(2) + f(3) + ... + f(n)S(n)=f(1)+f(2)+f(3)+...+f(n) 叫做部分和如果limn→∞S(n
2022-08-03 17:46:54 4314 2
原创 Css3新布局---Grid网格
网格布局是css3中新增加的一种布局方式,比flex更加强大。flex属于一维布局,对于高度不能灵活控制。grid网格布局是二维布局,通过行和列来分配网页空间。通过下面这个小游戏可以简单体会到网格布局的强大。...
2022-08-02 22:39:40 2492 1
原创 JS高级---面向对象
*Object.defineProperty()**可以同时为对象定义多个属性,包括数据属性和访问器属性,语法如下。};name{value'neko';},age{vallue18;{get(){}}})这样与单独定义的区别是属性特性的默认值都会变为false。按照下面的语法来定义类}类不能被提升,在实例化之前不能引用。类可以由构造函数、实例方法、获取函数、设置函数、静态方法组成,但这些都不是必须的,可以定义空类。......
2022-07-31 16:51:48 290 1
原创 React---基础
react是一个js库,与vue齐名。vue重心在增强了html,react重心在增强的js。react的语法更贴近js,所以需要学好js才能学好react。在这里先开个头,之后去系统学习js。
2022-07-29 12:05:53 421
原创 页面适配方案
rem 是一个相对单位,1rem 就是 html 文字的大小比如1.2 flexible.js1.2.1 作用通过js 实时检测屏幕窗口的变化实现检测视口宽度。这个js把页面分为10等分,也可以修改源码改为任意等份,移动端一般分为10份,网页端分为24份复制走就可以用2. vw/vh2.1 定义vh和vw也是css的单位不管在什么屏幕下, 我们把屏幕分为平均的 100等份。rem是相对于根元素,要做到适配需要媒体查询或者flexible.js。vh和vw更方便,始终适应屏幕。使用less文件或
2022-07-12 17:34:26 818 1
原创 Electron--桌面应用开发(基本应用,快速入门)
electron是一个使用前端技术开发跨平台桌面应用程序的框架,帮我们把网页转换成桌面应用。新建一个文件夹,打开终端输入,初始化项目,填写名称、作者、版本等各项配置2. 安装electron将electron的node模块下载到本地,如果npm安装失败(跟我一样倒霉),可以换用淘宝镜像cnpm3. 配置json文件添加一行代码,将main字段的值改为(不改也可以,对应的是等一下创建的入口js文件的名称)4. 编写入口js文件创建窗口具体代码写在下面,写有注释顺便吐槽一下,可爱的vscode是不
2022-07-12 09:29:55 6251 1
原创 Matlab绘图
先来简单试一下昨天搭建的开发环境,真心好用。plot函数可以接受一个函数,可以绘制出该函数的图像plot函数接受两个参数第一个参数作为横坐标,第二个参数作为纵坐标,就收的参数可以是相同长度的数组。plot还可以接受第三个参数来控制图像的样式参数参考也可以写入多组x和y分别设置样式。添加标记时需要跟上第四个参数,说明在哪些位置添加标记线宽标记大小和标记颜色的设置添加标题和轴标签时间刻度格式线条属性修改更多功能随时查阅matlab官方教程-plot函数使用,其含义为3.
2022-07-05 17:24:19 632
原创 Matlab程序
可以看到matlab的语句和其他大部分语言不太一样不同点相同点看得出依然没有大括号,依然要以end结尾,不同的是switch后加了小括号exp可以接受整数或字符如果多个case需要执行相同的代码,则可以写在一起,用花括号括住case后跟逗号不是冒号当case后的代码块被执行完后会直接跳出,不会再继续执行下去当switch后的结果与多个case匹配,则只有第一个代码块会执行1.3 try/catch语句类似java中的try语句,用于捕获错误在执行try语句时,如果发生错误,try
2022-07-04 22:00:04 345
原创 Matlab数组
直接写表达式,步长默认为1函数,数量默认为100直接写a’函数产生a*b的全1数组产生n阶单位矩阵将随机发生器置0生成a*b的正态随机矩阵取对角元,或利用一维数组生成对角矩阵从数组n中随机选取元素,生成发生器状态为x的a*b的矩阵,生成n维的魔力数组(各行各列及对角线上元素求和都相等)用于生成二维数组的函数等可以在后面补上参数,生成更高维的数组。先创建二维数组,然后在数组寻址时加入第三个维度可以存储不同数据类型但是相关的东西内容索引法,将花括号写在左边,右边是要赋的值。1.2
2022-07-03 16:28:34 4267
空空如也
虚拟机尺寸很小,怎么能让他放大
2022-09-09
问一下这个请求该怎么写
2022-08-06
获取到的数据无法显示在页面上
2022-07-21
电脑每次重启后桌面的壁纸都会变成全黑
2022-07-18
求matlab相关的编辑器推荐
2022-07-04
我感觉编译器在拿我取乐
2022-05-05
为什么一刷新页面就会执行点击事件
2022-04-21
想问一下背景这个点阵图是怎么做的
2022-04-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人