自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

漫漫漫漫的博客

小而美,全而精。

  • 博客(68)
  • 收藏
  • 关注

原创 基于MDX的在线文档实时编译方案

MDX 是一种用于编写 Markdown 和 JSX 内容的格式,其全称是 “Markdown for JSX”。它结合了 Markdown 的简洁易用与 JSX(JavaScript XML)的强大功能,使得开发者可以在 Markdown 文档中直接插入并使用 React 组件。这种格式特别适合于构建内容丰富的文档或博客,同时需要一部分动态、交互性组件的项目。

2025-05-21 20:28:54 468

原创 MCP协议简单拆解

模型上下文协议(Model Context Protocol,MCP),是由 Anthropic推出的开源协议,旨在实现大语言模型与外部数据源和工具的集成,用来在大模型和数据源之间建立安全双向的连接。模型上下文协议协议是专为高效获得模型所需要上下文信息而设计的通用接口,可以将推动大语言模型应用的标准化和去中心化。

2025-04-29 10:56:19 774

原创 基于Node+HeadlessBrowser的浏览器自动化方案

Playwright:适合需要多浏览器支持的项目,API 现代且跨平台,对新功能的支持很快。Puppeteer:专注于 Chromium,适合简单的自动化测试和爬虫任务。Selenium:对于复杂的跨浏览器测试任务是很好的选择,但需要较多的配置和学习。PhantomJS:虽然轻量且快速,但由于停止维护,而其使用逐渐减少,不建议用于新项目。

2025-04-25 17:00:48 585

原创 RAG知识库-LlamaIndex文档切片

在处理文本数据时,我们需要将这些信息转变成向量格式,比如说把1000个文字变成1024维的向量。为了让向量化流程更加精准做,避免内容丢失,我们需要先对文档进行切片,并进行的数据标准化处理。提高向量化质量:通过适当的切片,可以确保每个切片的内容具有一致的格式和上下文。这有助于在转换为向量时保留更多的语义信息,提高向量化表示的质量和准确性。数据处理更高效:处理非常大的文档或长篇文章时,如果不进行切片,处理这些数据将非常耗时且资源密集。文档切片可以将数据分成较小的部分,提高处理速度,并减少内存消耗。

2025-03-24 15:02:10 437

原创 基于LlamaIndex实现Rag向量数据存储与召回

super();// 请求Embedding模型,并返回向量数据.....return [];// 如果查询嵌入与文档嵌入相同,可以直接调用 getTextEmbedding。

2024-11-25 11:23:32 345

原创 基于langchain.js快速搭建AI-Agent

如何基于langchain,快速搭建属于自己的AI智能体

2024-10-18 17:39:34 395

原创 ChatGpt接口流式输出解决方案

【代码】ChatGpt接口流式输出解决方案。

2024-03-08 15:55:35 2229

原创 Three.js加载360全景图片/视频

【代码】Three.js加载360全景图片/视频。

2023-09-28 16:15:14 1738

原创 JS中常见的模块管理规范梳理

在js中常用的几种模块管理规范梳理

2023-08-02 21:21:44 476

原创 React性能优化API

PureComponent:React 自带的一个纯组件,其 shouldComponentUpdate 函数已经被自动实现,只有在 props 或 state 发生变化时才会重新渲染组件。shouldComponentUpdate:通过重写该函数实现组件的条件渲染,即只有在组件的 props 或 state 发生变化时才重新渲染组件。memo:类似于 PureComponent,但是用于函数式组件,可以使其只在 props 发生变化时重新渲染。

2023-06-15 18:15:11 1282

原创 如何在项目中使用不同版本的包?

如何在项目中使用一个包的不同版本?

2023-04-27 20:15:55 1730

原创 基于Canvas动态生成页面水印

在传统开发过程中难免有动态给页面渲染水印的需求,本文将提供一个基于Canvas的水印解决方案。

2023-02-14 20:04:20 858

原创 Three.js模型粒子变换效果

Three.js模型的粒子点云变换效果

2023-02-01 19:52:18 1482

原创 React虚拟滚动列表-原理剖析

React虚拟滚动列表原理简单剖析

2023-01-30 17:23:52 965

原创 Umi、React框架学习笔记

Umi 以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。

2023-01-16 11:43:19 996

原创 EventLoop事件循环机制

JS-EventLoop事件循环机制

2022-11-08 18:19:51 563

原创 Vue接入Monaco Editer代码编辑器

Vue 使用 Monaco 代码编辑器

2022-08-17 17:46:21 1760

原创 Vue3 Setup语法糖汇总

vue3 setup 语法糖

2022-06-28 17:45:36 1469

原创 基于Vite+Vue3的项目快速生成工具

VUE3项目快速生成工具

2022-03-25 11:02:01 1819

原创 Three.js地图轮廓分割效果

Three.js地图轮廓分割轮廓效果基于GeoJson数据解析绘制,支持多级国家/省/市细粒度路径绘制可以通过Shader/材质/贴图实现不同的轮廓分割效果阿里云GeoJson配置/下载地址相关方法 // 经纬度与世界坐标转换 const getPosition = (lng, lat, radius) => { const phi = (180 + lng) * (Math.PI / 180); const theta = (90 - lat) * (Math

2021-12-28 15:29:26 1181

原创 Three.js/Shader墙体流光特效

Three.js墙体流光效果基于ShaderMaterial,通过两张贴图实现流动效果,配置不同的贴图可以有不同效果生成方法 /** * 创建流体墙体材质 * option => * params bgUrl flowUrl * **/ const createFlowWallMat = ({ bgUrl, flowUrl }) => { // 顶点着色器 const vertex

2021-12-24 18:50:06 6291 13

原创 Three.js/Shader墙体渐变透明特效

Three.js/Shader渐变发光透明墙特效

2021-12-23 16:48:27 6296 6

原创 Three.js通过不规则路径生成墙体

Three.js通过不规则路径生成墙体在一些3D场景的搭建中,经常会遇到图中通过墙体来分割内容的效果,目前Threejs提供的Geometry类型还无法直接处理一些不规则墙体的搭建生成算法通过BufferGeometry基础图形搭建通过路径解析算法,构建出所有需要渲染的面支持三维路径进行构造 /** * option => * params height path material * 通过path构建墙体 * **/

2021-12-23 11:18:53 6615 22

原创 判断经纬度是否在某个区域内

通过经纬度信息,判断某点是否在某个区域内代码/** * 处理区域轮廓点数据 * path : [ [ lon,lat ] ] */export function preceedPointInArea(lng, lat, points) { const polygon = []; for (const point of points) { if (point.length == 2) { point["lng"] = parseFloat(point[0]);

2021-11-22 17:27:36 2827

原创 Vue3.0接入踩坑记录

ref()与reactive()用法上的区别两个方法都是用于为数据添加响应式绑定,ref()一般用于给基础数据添加绑定 字符串/数字绑定后使用.value访问。reactive()一般用于给 object 等复杂类型添加动态绑定,绑定后直接访问即可。 const a = ref({ name: 'bob', age: 18 }); const b = reactive({ name: 'bob', age: 18 }); console.log('a::', a, 'b::'.

2021-07-12 17:19:02 3705 2

原创 Babylon.js 实现鼠标拾取操作

Babylon.js 实现鼠标拾取操作通过scene.pick(scene.pointerX, scene.pointerY);API实现物体选中,并返回结果对象hit(bool):如果点击击中了场景中的一个对象,则为true。distance(float):当前活动相机与命中点之间的距离(如果未命中任何物体,则为infinite无限)。pickMesh(BABYLON.Mesh):如果击中一个物体,则这就是这个物体的实例对象。 如果不是,则为空。pickPoint(BABYLON.Vector

2021-07-07 11:10:10 2106 1

原创 Babylon.js实现物体碰撞检测

Babylon.js实现物体碰撞检测通过intersectsMesh()api实现物体间碰撞检测通过intersectsPoint()api实现物体与点间的碰撞检测代码<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> &

2021-07-06 14:34:43 1561

原创 Three.js清除场景/模型释放内存

加在开发时,若遇到需要动态添加删改模型、场景,页面切换重渲染时,为避免内存叠加占用,需要手动清除场景所占用的内存,避免溢出与资源浪费。使用 dispose() 清除所有网格模型几何体的顶点缓冲区占用内存使用 object.clear() 销毁模型对象,清除页面内存暂停 requestAnimationFrame() 方法,避免无意义运行清空 canvas画布,置空dom与相关元素清除场景 clearScene() { cancelAnimationFrame(this.animati

2021-04-19 18:48:26 17607 7

原创 Vue3.x接入Vuex,Vue-router

一、Vuex用法近乎相同,{ mapState,mapMutations,mapActions,mapGetters }方法在option写法中用法依旧相同,在组合api中需要用 useStore 代替 $store,在Vue3中新增了{ provide,inject }方法,在多组件共用数据时提供了更方便的选择1.安装npm install vuex@next --save2.编写store/store/index.jsimport { createStore } from "vuex";e

2021-01-19 20:42:41 1638

原创 Three.js无限星空特效

效果代码<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> * {

2021-01-15 18:01:48 1540

原创 Three.js星空粒子特效

效果代码只渲染固定个数与区域的粒子保证性能初始化时确定每个粒子偏移向量方向,操作帧动画时做三维向量偏移超过规定区域时还原,实现无限粒子移动<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />

2021-01-15 17:27:18 2134 1

原创 Three.js Line2渐变色线条序列帧动画

效果代码1. 生成轨迹线// 轨迹曲线线 const curve = new THREE.CatmullRomCurve3( [ new THREE.Vector3(-20, 30, 4), new THREE.Vector3(20, 30, 4), new THREE.Vector3(20, 0, 4), new THREE.Vector3(-20, 0, 4),

2021-01-15 11:36:04 7358 11

原创 Three.js渲染Dom元素到3D场景

效果中间两个swiper部分用dom方式实现,再将其转化成为Three中的CSS3DObject对象添加到3D场景中,代码需要创建两个场景与渲染器(普通渲染器,CSS3Render)通过两个场景融合实现dom插入(这种方式会导致深度信息丢失)<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" c

2021-01-14 20:39:04 2739 5

原创 Three.js基于Canvas的文字贴图

Three.js基于Canvas的文字贴图居中对齐,对中文文字做了长度兼容处理,可更具开发需求自行构造Canvas贴图 const createLabel = () => { const name = "马达加斯加的企鹅们正在快乐的玩耍"; const canvas = document.createElement("canvas"); const color = "#dddddd"; const fontSize = 50;

2020-12-28 19:56:23 1733

原创 Three.js 修复UnrealBloomPass导致背景失效问题

Three.js 修复UnrealBloomPass导致背景失效问题import { AdditiveBlending, Color, LinearFilter, MeshBasicMaterial, RGBAFormat, ShaderMaterial, UniformsUtils, Vector2, Vector3, WebGLRenderTarget} from "../../../build/three.module.js";import { Pass } from "

2020-12-21 16:04:20 2885 12

原创 Three.js带Depth实现分区辉光

一、效果二、如何实现1.基于EffectComposer后期渲染器。2.借助UnrealBloomPass渲染通道,实现辉光效果。3.接住ShaderPass,保此原有material。4.单帧两次渲染,分别渲染辉光部分,还原正常部分。5.相比直接分层两次渲染,修复了深度信息丢失导致的层级问题。三、代码实现<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /&

2020-12-21 11:36:02 2081 3

原创 Vue按比例居中适配组件

Vue实现按比例居中适配实现类似视频缩放,居中,保持视频比例不变形效果<template> <div class="pageWarp32Ratio9"> <div class="content-wrap" :style="{ transform: `scale(${scaleRation})` }"> <slot></slot> </div> </div></templat

2020-12-02 11:48:12 657 1

原创 Three.js实现hover与Click选中效果

一、效果展示二、如何实现使用Three.js提供的光线投射Raycaster模块通过Raycaster将物体在场景中的位置与鼠标的位置进行对比当鼠标的平面坐标与场景中物体的平面坐标发生重叠时认为选中了物体三、代码实现<script type="module"> import * as THREE from "./node_modules/three/build/three.module.js"; import { OrbitControls } from

2020-11-26 11:52:37 4518

原创 Three.js实现分区Bloom辉光效果

一、效果展示辉光效果二、如何实现1.基于EffectComposer后期渲染器。2.借助UnrealBloomPass渲染通道,实现辉光效果。3.了解three.js中 layers 分层的概念,实现分层渲染。4.单帧两次渲染,分别渲染两个不同的场景,组合成为需要的场景。三、代码实现<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <

2020-11-23 20:17:34 6502 6

原创 webpack多页应用打包配置

项目结构webpack.config.dev.jsconst path = require("path");const resolve = (url) => path.resolve(__dirname, url);const HtmlWebpackPlugin = require("html-webpack-plugin");// const CopyWebpackPlugin = require("copy-webpack-plugin");module.exports = {

2020-11-17 23:11:51 293

空空如也

空空如也

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

TA关注的人

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