自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(511)
  • 资源 (22)
  • 收藏
  • 关注

原创 Three.js 着色器相关方法总结

WebGL2 / GLSL 300 es 写法。

2026-05-19 17:35:18 416

原创 Three.js加载 .obj文件 和 .gltf文件

是一种比较老、但很常见的 3D 模型格式。它主要保存模型的几何信息,比如:但 通常不完整保存材质细节,所以经常会配套一个 文件。简单理解:2. 如何引入 OBJLoader在 Three.js 项目中,可以这样引入:如果项目使用 写法,也可以这样:3. 基础加载 OBJ最基础的加载方式:这里的 通常是一个 ,里面包含多个 。可以理解成:4. 只加载 OBJ 可能没有正确材质 主要负责几何体 才保存材质和贴图引用 文件里只是通过 和 引用材质OBJ 文件里可能有类似内容:

2026-05-19 15:45:12 366

原创 Three.js 里常见的“三维量”相关构造

Vector3描述位置、方向、尺寸EulerQuaternion描述旋转Matrix4描述完整变换Box3Sphere描述空间范围RayPlaneFrustum描述空间检测Color描述颜色通道你写 Three.js 时,最先熟悉就够用了。

2026-05-14 16:02:56 362

原创 Three.js基础知识

使用是 three.js 表示几何体的底层方式,它由一组组成。每个position:顶点位置normal:顶点法线uv:纹理坐标color:顶点颜色自定义 attribute:给自定义 shader 使用。

2026-05-13 15:09:02 421

原创 three.js入门

路径追踪属于 蒙特卡洛光线追踪 的一种实现。从相机(或眼睛)向每个像素发射一条或多条光线。光线进入场景后,不断与物体表面交互(反射、折射、漫反射等),每次交互都根据材质的物理属性(如 BRDF)随机选择新方向。光线持续传播,直到到达光源或超出最大弹射次数。最终,收集所有命中点的光照贡献,累加后得到该像素的颜色。这个过程模拟了真实光子的随机游走,通过大量采样(每个像素数千甚至上万条光线)来收敛到准确的照明结果。

2026-03-24 17:54:19 458

原创 WebAPI — Performance API (web性能检测)

Performance API 是一组用于的标准。每一个性能指标都是用一个性能条目()表示。性能条目具有名称(name)、持续时间(duration)、开始时间(startTime)、类型(type)。

2026-03-23 10:44:49 385

原创 13.差分数组

差分数组的每个元素存储的是。

2025-10-11 10:47:15 14

原创 12.动态规划

问题:计算 fib(5) 时,计算过程会像一棵巨大的树,fib(2)、fib(3) 等值会被重复计算无数次。确定了 dp 数组的含义后,要找出 dp[i] 与之前的状态(如 dp[i-1], dp[i-2])之间的关系。我们需要初始化最初的几个值,比如 dp[0], dp[1] 等。技巧:思考这个问题:要想得到 dp[i],需要知道哪些子问题的解?如:dp[i] 通常表示以第 i 个元素结尾的某种状态。,通过“记住”已经求解过的答案,避免重复计算。

2025-08-26 18:24:40 882

原创 _nuxt .nuxt output之间的关系

nuxt 是访问资源的“网址”,而.output 是存放资源的“仓库”。浏览器通过“网址”向服务器请求资源,服务器则从“仓库”中取出对应的资源返回。.nuxt 和 .output 是物理目录,是不同环境下的输出结果,它们互相独立。_nuxt 是一个统一的虚拟路径,是连接浏览器和上述两个物理目录的桥梁。在开发时它指向 .nuxt 的内容,在生产时它指向 .output 的内容。对于浏览器来说,它只认识 _nuxt 这个接口,完全不知道背后是 .nuxt 还是 .output 在提供服务。

2025-08-25 17:18:28 978

原创 11. 贪心算法

贪心算法是一种在每一步选择当前最优解,从而希望最终得到全局最优解的算法策略。它不回溯、不重新考虑之前的选择,而是通过局部最优决策逐步构建全局解。但是贪心算法并不保证一定会得到最优解。如,找最短路径问题:最短路径是:9 - 8 - 1但是根据贪心算法找出的最短路径是 9 -2- 8可见不一定是最优解。

2025-07-18 19:33:33 228

原创 11.递归和分治

定义:分治算法是一种重要的算法设计范式,它遵循三个步骤递归地解决问题:分解(Divide):将原问题分解为若干个规模较小的子问题解决(Conquer):递归地解决这些子问题合并(Combine):将子问题的解合并为原问题的解特点:分治不是一个解决特定问题的算法,而是一种解决问题的思路。分治一般会使用到递归。

2025-07-09 17:33:26 543

原创 10. 图——数据结构(+深度优先广度优先)

图被定义为一个由节点(或顶点)及边组成的数据结构。节点通常代表某种实体边则表示这些节点之间的某种关系。这些关系可能是加权的,也可能是无权的,并且可能是有向的或无向的。节点是非空集合,边可以是空集合。

2025-06-29 16:13:00 488

原创 9.树 —— 数据结构(js)

树是用来描述我们生活中形似于树的一种数据结构,由节点、边构成。我们生活中很多场景都可以用树来进行描述,比如公司的职位架构,家族关系谱,食物链等。因此研究树的特点和学习树对于我们来讲至关重要。

2025-03-09 15:48:24 550

原创 8.栈和队列 —— 数据结构(js)

栈是一种特殊的线性表,仅能在线性表的一端操作,只能在栈顶进行操作。先进后出函数的嵌套调用就是一个常见的栈结构队列是是一种受限的线性表,只能在队列的头部插入,尾部删除。队列的特点是:特点为先进先出。

2025-02-20 17:40:58 38

原创 7.链表 - 数据结构

链表结构是内存内部的一种存储方式:链表结构是把一系列节点串联起来,每个节点上至少包含两个部分:数据域与指针域数据:保存数据指针:指向下一个节点的引用由于链表的这种存储结构,所以链表的内存是不连续的。

2025-02-16 11:29:52 33

原创 6.滑动窗口和双指针

在每次窗口滑动时,可以通过添加新元素和删除旧元素来更新窗口的内容,以在。快慢指针也是双指针,但是两个指针从同一侧开始遍历数组,将这两个指针分别定义为快指针(fast)和慢指针(slow),两个指针以不同的策略移动,直到。对撞指针是指在有序数组中,将指向最左侧的索引定义为左指针(left),最右侧的定义为右指针(right),然后从两头向中间进行数组遍历。双指针:指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个。滑动窗口实际上是双指针算法的一个延伸,它特指双指针算法中的同向双指针。

2025-02-07 23:41:31 285

原创 5. 前缀和

它通过预先计算数组中每个位置前所有元素的累加和,将这些部分和存储在一个新的数组中,从而在需要计算某个区间的和时,可以通过简单的减法操作得到结果,而不必重新遍历整个区间。先验证hash中是否存在目标前缀和再入hash,因为如果k=0的时候,先入hash再判断就会出现重复计数的问题。的时间复杂度还是不低,我们可以考虑使用hash结构存储前缀和,循环的时候判断。暴力法解决:求出所有连续子数组的和,然后遍历它们并且统计其中和为k的项数。,sum(arr,i,j)的复杂度为n,所以总的时间复杂度达到了。

2025-01-19 12:05:22 344

原创 4. 二分查找

二分查找的思想是利用数组已排序的信息,将时间复杂度降低到。中使用的搜索算法,通过重复将搜索间隔。二分搜索被定义为一种在。

2025-01-13 11:19:52 574

原创 Set数据结构

Set 对象是值的合集(collection)类似于数组,但是集合(set)中的元素只会出现一次,即集合中的元素是唯一的。规范要求集合的实现是“对合集中的元素的平均访问时间与集合中元素的数量呈次线性关系”。因此,它可以在内部表示为哈希表(查找的时间复杂度为 O(1))、搜索树(查找的时间复杂度为 O(log(N)))或任何其他的时间复杂度低于 O(N) 的数据结构。

2025-01-09 19:50:12 32

原创 Map数据结构

map数据结构就是js中的hash表达,可以提供非常快速的插入-删除-查找操作,无论多少数据,插入和删除只需要接近常量的时间即O(1)。规范要求 map 实现“平均访问时间与集合中的元素数量呈次线性关系”。因此,它可以在内部表示为哈希表(使用 O(1) 查找)、搜索树(使用 O(log(N)) 查找)或任何其他数据结构,只要复杂度小于 O(N)。

2025-01-09 17:12:30 306

原创 3. 排序算法

数据量小,要求稳定: 插入排序, 冒泡排序数据量中等,要求最快速度: 快速排序数据量大,要求稳定: 归并排序, 计数排序, 桶排序浮点数排序: 插入排序, 归并排序, 堆排序针对特定数据分布: 计数排序, 桶排序, 基数排序对于百万以上级别的数据,推荐使用时间复杂度为O(nlogn)的排序,如 快速排序, 堆排序 和 归并排序。如果数据分布较集中的话,可以考虑线性时间的 计数排序 和 桶排序。

2025-01-08 16:03:21 577

原创 数据结构——堆(Heap)js实现

调整时先在左右儿子结点中找最小的,如果父结点比这个最小的子结点还小说明不需要调整了,反之将父结点和它交换后再考虑后面的结点。相当于从根结点将一个数据的“下沉”过程。

2025-01-05 16:35:15 544

原创 vue3+antd注册全局v-loading指令

在directives中创建如下文件。注册成功之后就可以在全局范围内使用了。

2024-11-27 14:15:27 1333 1

原创 git使用某一分支代码完全覆盖另一分支

2、设置本地分支代码的远程为远程master分支。2、设置本地分支代码的远程为本地master分支。2、设置本地分支代码的远程为dev分支。1、切换到master分支。1、切换到dev分支。1、切换到dev分支。

2024-11-16 00:27:45 2533

原创 windows和git不区分文件名大小写问题

windows系统默认不区分文件名大小写,但是Linux系统是区分文件大小写的。我们使用windows系统开发,将代码推送到Linux代码库,但是其他Linux开发者也是区分大小写的就导致可能出现,Linux开发者创建同名但大小写不同的两个文件,推送至Linux代码库,这一过程是没问题的,但是windows开发者克隆代码的时候只会克隆其中一个文件,这样就出现问题了。

2024-11-16 00:16:05 1110

原创 v-model在父子组件中的实现

父子组件之间使用v-model实际上就是对传递属性(props),在组件中修改属性(emit)的简写。

2024-10-30 10:24:59 1611

原创 ES6中js文件执行顺序

模块加载和解析:所有的依赖模块都会先被加载和解析。代码执行:在所有模块加载和解析完成之后,才会执行你编写的代码。所以,funcA()和funcB()的执行是在所有依赖模块都已经加载和解析完成之后进行的。这样就确保了你在代码中使用的任何导入对象(如funcA和funcB)都是已经正确加载和初始化的。

2024-09-02 20:13:46 789

原创 chrome插件模拟isTrusted的事件

使用js模拟的事件isTrusted的值时false。有的时候我们想要模拟sTrusted未true的事件就比较麻烦了。我们可以利用chrome插件的解决改问题。

2024-09-02 20:06:34 1620

原创 子组件和父组件的挂载顺序

在 Vue.js 和 Nuxt.js 中,组件的挂载顺序是由组件的层级关系决定的。通常情况下,父组件会先挂载,然后再挂载其子组件。这是因为在父组件的模板中引用了子组件,只有当父组件的模板被解析并挂载时,子组件的模板和生命周期钩子才会被解析和执行。

2024-09-02 19:33:13 521

原创 .gitignore 修改问题

当你修改 .gitignore 文件后,如果发现忽略规则没有立即生效,可能是因为这些文件已经被 Git 跟踪了。Git 不会自动停止跟踪已经被纳入版本控制的文件,即使它们后来被添加到了 .gitignore 中。

2024-09-02 16:59:51 631

原创 nuxt的fetch钩子和v-if结合使用时出现的问题

今天写代码的时候发现nuxt的钩子不在服务端执行,而是在客户端执行,并且mounted钩子不会在fetch钩子执行结束后再执行,导致一些数据获取顺序不对渲染结果出错。并且此时子组件的mounted在fetch后面执行,但是不是等fetch执行完之后才执行。Nuxt.js 启用服务端渲染 (SSR) 时,服务端渲染会针对。问题:Main组件中的fetch在客户端执行。执行,初始不显示的组件不会执行SSR。// 模拟用户交互显示异步组件。

2024-07-24 15:42:49 863

原创 浏览器插件的开发

可以使用vue编写插件,只是manifest.json中”content_scripts“ 字段对应的”js“是vue打包后的代码路径。由于插件运行在浏览器中,所以在content_scripts声明的js代码中可以获取到当前页面的所有内容,可以对页面的DOM进行操作。js文件:content_scripts声明的js文件,包含插件的主要逻辑,主要是对目标网站做一些DOM和BOM操作。在插件中可以使用axios发送请求,但是如果目标服务器的地址不是当前浏览器页面的地址的时候需要使用。

2024-06-26 20:40:59 1764

原创 xlsx实现excel下载功能——js

【代码】xlsx实现excel下载功能——js。

2024-06-26 20:18:23 874

原创 Linux——防火墙

alias 别名=‘实际命令’定义自定义命令影响指定用户的bash解释环境:在~/.bashrc文件中配置,每次开启bash终端时生效影响所有用户的bash解释环境:在文件中配置,每次开启bash终端时生效注意配置完成之后需要在新的终端窗口才可以使用。上面启动的两个web服务,只能通过本机访问,外界网络访问的话会报错:为了解决这个问题我们需要关闭防火墙。防火墙的作用是隔离,从而保护主机安全。防火墙严格过滤入站请求,允许出站请求。主机自己访问自己的时候是不需要经过防火墙的。

2024-05-17 00:53:04 1127 1

原创 CSS—— grid布局

grid 是一个 CSS 简写属性,可以用来设置以下属性: 显式网格属性 grid-template-rows、grid-template-columns 和 grid-template-areas, 隐式网格属性 grid-auto-rows、grid-auto-columns 和 grid-auto-flow, 间距属性 grid-column-gap 和 grid-row-gap。none:表示不明确的网格,所有的行和其大小都将由grid-auto-rows 属性隐式的指定。

2024-05-14 01:46:08 8642

原创 优化首屏加载速度——webpack打包优化(压缩和分包)

由于webpack默认生成一个chunk.js文件,导致该文件可能导致该文件体积过大,首次加载的时候耗时太长,对用户不友好。分包: 将node_modules文件夹下的所有组件,根据大小进行分包, 超过300k进行分包,小于100k的不进行分包。(设置多个入口文件也有助于分包)

2024-05-09 15:53:08 558

原创 Shell脚本

如果使用的是法二,执行的最后的结果是:所在的目录是当前执行的目录,因为使用指定解释器执行完之后就会退出该解释器,指定解释器进入过abc目录,但是指定解释器退出了,所以最后所在的目录是当前执行的目录。法三使用的是当前解释器,解释器解析完之后不会退出。Shell是Shell解释器的简称,机器本身是不知道我们编写的脚本是什么意思,需要使用shell解释器将命令翻译为机器能够读懂的信息。后缀结尾,但是改后缀不是给机器识别的,机器根据Shell脚本的解释器声明来识别该文件是一个Shell脚本,

2024-05-06 22:21:34 990

原创 Vue3 ——服务端渲染SSR

为了使客户端的应用可交互,vue需要执行一个激活的步骤。然而, Vue也支持服务端渲染(SSR):将组件在服务端直接渲染成HTML字符串,作为服务端响应返回给浏览器,最后在浏览器端将静态的HTML“激活”为能够交互的客户端应用。环境依赖:服务端渲染的应用需要一个能让 Node.js 服务器运行的环境,不像完全静态的 SPA 那样可以部署在任意的静态文件服务器上。开发限制:浏览器中的特定代码只能在生命周期钩子中使用(如,window),一些外部库,需要特殊处理才能在服务端渲染的应用中运行。

2024-04-11 11:58:02 581

原创 资源访问流程、静(动)态网站、SSR、CSR、SSG、静态文件服务器

如果使用的是CSR渲染方式的项目,被打包成静态资源部署到服务器上,在浏览器上访问的时候会先访问部署在服务器上的index.html文件,同时该index.html文件引入的js文件会从后端获取数据资源然后在浏览器端进行渲染,那这使用的方式就是CSR。比如说SSG渲染方式的项目,被打包成静态资源,然后被部署到服务器上,从浏览器中访问该项目,直接获取的是部署在服务器上的静态资源,那使用的方式就是SSG渲染。对于不涉及Node.js的前端代码打包出来的一般就是静态资源文件,一般部署在静态文件服务器上。

2024-04-11 00:59:58 1038

原创 渐变字体的实现

会发现字体的颜色完全被阴影覆盖。这是因为我们将字体的颜色设置为了透明色,字体阴影是在字体的下层,背景的上层展示的,所以字体阴影将遮盖背景展示出来。

2024-04-07 20:31:04 1508

第八章 JDBC.html

第八章 JDBC.html

2022-03-17

第二章 HTML1.html

第二章 HTML1.html

2022-03-17

第二章 HTML2.html

第二章 HTML2.html

2022-03-17

第七章 JSP-JSTL EL.html

第七章 JSP-JSTL EL.html

2022-03-17

MySQL数据库连接.html

MySQL数据库连接.html

2022-03-17

Tomcat部署.html

Tomcat部署.html

2022-03-17

第二章 HTML4.html

第二章 HTML4.html

2022-03-17

第六章 Servlet.html

第六章 Servlet.html

2022-03-17

第三章 CSS1.html

第三章 CSS1.html

2022-03-17

第三章 CSS2.html

第三章 CSS2.html

2022-03-17

大三上项目代码——web

大三上项目代码——web

2022-03-18

第三章 CSS3.html

第三章 CSS3.html

2022-03-17

第四章JavaScript.html

第四章JavaScript.html

2022-03-17

第五章 JQuery.html

第五章 JQuery.html

2022-03-17

第一章 Web开发技术-概述.html

第一章 Web开发技术-概述.html

2022-03-17

系统分析与设计——课程笔记.rar

系统分析与设计——课程笔记.rar

2022-03-17

web开发技术——课程笔记.rar

web开发技术——课程笔记.rar

2022-03-17

软件体系结构——课程笔记.rar

软件体系结构——课程笔记.rar

2022-03-17

操作系统——课程笔记.rar

操作系统——课程笔记.rar

2022-03-17

计算机网络——课程笔记.rar

计算机网络——课程笔记.rar

2022-03-17

GitHub的使用.html

GitHub的使用.html

2022-03-17

导言 课前介绍.html

导言 课前介绍.html

2022-03-17

空空如也

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

TA关注的人

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