- 博客(17)
- 收藏
- 关注
原创 JS public、private、protected 有什么区别呢?
访问修饰符访问范围Public任何地方(内部、外部、子类)Private仅在类内部, 可以通过公共方法访问Protected仅在类内部和派生类内部在 JavaScript 中,public和private是直接支持的,而protected采用约定形式实现,通常依赖于命名约定。使用这些访问修饰符可以帮助更好地封装代码、隐藏实现细节以及提高数据安全性。
2025-01-22 17:14:37
505
原创 preload、prefetch、async、defer的区别
preload和 prefetch:用于资源提前加载,分别适用当前页面和未来可能需要的资源。async和 defer:用于控制脚本的加载与执行时机,async最适合独立脚本,defer适合需要按顺序执行且依赖DOM的脚本。
2025-01-22 17:14:06
354
原创 Three.js学习笔记(三):使用SelectionBox选中instanceMesh遇到的问题记录
公司之前有个绘制大量点和矢量的编辑平台是一个外包开发的,外包写的很粗糙,导致点线数据一朵卡顿频繁,fps骤降至3,因此决定用InstanceMesh改造一番。在执行select的时候主要关注searchChildInFrustum,可以发现哈select方法返回的事collection而我们需要的instanceMesh在instances,这时候你可以将instances返回就可以拿到想要的instanceId了。以下是一个简单的SelectionBox实现案例。
2024-12-19 20:46:49
243
原创 Three.js学习笔记(二)解决raycaster射线拾取精度问题&探究部分源码
使用three.js绘制不连续的线段重要的其实是使用LineSegmentsGeometry,然后使用setPositions,setColors的方式去渲染着色。笔者用到LineSegements2是因为需要渲染大量不连续的线段,而LineSegements2虽然和LineSegements只差一个字,实现的方法大大不同,LineSegements继承了Line,而Line2则是继承了LineSegements2,在webgl的渲染中,为了渲染带宽度的线段,往往会选择Line2。拾取线段精度不准确。
2024-12-19 20:37:09
582
原创 【地理可视化】地理坐标系学习与GPS经纬度坐标WGS84到东北天坐标系ENU的转换(附代码)
也叫地心地固直角坐标系。其原点为地球的质心,x轴延伸通过本初子午线(0度经度)和赤道(0deglatitude)的交点。z轴延伸通过的北极(即,与地球旋转轴重合)。y轴完成右手坐标系,穿过赤道和90度经度。
2024-11-15 14:14:51
926
原创 【React&前端】大屏适配解决方案&从框架结构到实现(超详细)(附代码)
最近公司来了一个大屏的项目,之前没有接触过,因此看了很多方案,总结了一下,然后选择了一种方案去实现,看完这篇文章,只要你有设计稿,拿来就用可以100%高度还原任何场景!
2024-11-15 13:44:41
2387
原创 【Midway】midway中使用egg.js解决cors跨域问题踩坑记录
CORS(Cross-Origin Resource Sharing,跨源资源共享)是一种浏览器技术,允许或限制从一个源(域名、协议和端口)请求另一个源的资源。它是一种用于解决跨域请求问题的机制。
2024-11-11 20:48:20
878
原创 【每日一学】MDN:Date对象
在MDN(Mozilla Developer Network)中,Date对象是JavaScript内置的一个对象,用于处理日期和时间。Date对象提供了一系列的方法,允许你创建、操作和格式化日期与时间。
2024-11-11 18:56:38
484
原创 Three.js学习笔记(一):解决深度冲突&深度测试相关参数(附代码)
在Three.js中,常常会遇到一个问题,那就是当场景中两个物体叠在一起,造成重叠部分不断闪烁。那么这是为什么呢。
2024-10-31 20:37:24
1004
原创 【React】高阶函数运用(附代码)
在 React 中,使用高阶组件(Higher-Order Component, HOC)是一种常见的设计模式,用于增强组件的功能。那么在实际中我们会在何时用到呢?我们设计组件的目标是为了极大的解决业务使用问题,使用便利性和可扩展性则是我们设计组件的最大目标!比如一个简单的场景,需要我们开发一个对话框,该对话框是复用性很高的组件,我们可以在这个组件中去定义对话框提交表单,关闭显示的逻辑。dialogHOC可能是一个用来处理对话框(Dialog/Modal)相关逻辑的高阶组件。以下是如何使用。
2024-10-22 17:59:18
397
原创 【一点就透】prop-types使用(附代码解释)
prop-types是一个用于类型检查的库,特别是在 React 组件中。这是一个流行的工具,可以帮助开发者确保传递给组件的 props(属性)是特定类型的,从而提高代码的可维护性和可靠性。
2024-10-22 17:44:24
352
原创 Deck.gl学习笔记(四)一个完整的视角切换与Control实战
今天接到了一个小需求,deck.gl中的control在视角切换时通常是鼠标右键拖拽去进行平移页面,鼠标左键拖拽去进行旋转页面,这个操作习惯于three.js恰恰相反,部门中其他技术栈使用的都是three,因此这对用户的体验不友好,需要将页面控制兼容成three.js一样的鼠标左键拖拽去进行平移页面,鼠标右键拖拽去进行旋转页面。刚刚接到这个需求的时候,第一时间想到的是能否将鼠标左右键的默认事件转换,但是这又要重写很多逻辑,我们在控制页面视角转换时还是优先考虑用deck.gl。
2024-10-18 16:51:32
441
原创 Deck.gl学习笔记(四)视角切换
当然这只是一个简单的例子,实际我们在3D数据可视化开发中不会在这里维护视角切换,例如,如果要做一个类似视频播放的控件,一辆车在0-90秒内由一处地点X开向另一 地点Y,而相机始终在这辆车的俯视面,这个效果又怎么做呢?也就是往往需要定义一个updateViewState的函数进行动态的相机视角切换,updateViewState传入的参数可以是时刻t1->t2的视角偏移viewOffset,setViewState通常就是viewState传入再通过deck.gl的setProps去更新视角,在一章仔细讲。
2024-10-18 16:28:02
287
原创 Deck.gl学习笔记(三):非地理空间坐标系下的简单使用
在这个例子中,使用了SolidPolygonLayer这个layer去创建长方体,主要通过getPolygon去构建视图。需要注意的是,使用OrbitView不需要传经纬度坐标。因为前几种为地理空间坐标系,即使用经纬度为基础坐标,一般配合mapbox一起使用,而公司的需求为使用非地理空间坐标进行视图渲染。因此选择了orbitView。因为公司项目需求的缘故,所以开发在不使用经纬度的情况下进行视图更新渲染。在orbitView视角下简单创建一个长方体。
2024-07-05 16:15:28
325
原创 Typescript使用(持续更新)
类型断言(Type Assertion): 类型断言用于手动指定变量的类型,通过将变量断言为特定类型,可以获得更精确的类型检查。有两种形式:尖括号语法。当你不确定一个值的类型时,可以将它赋值为 unknown,必须进行类型检查或类型断言后才能使用。指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错。enum: 枚举类型,用于定义一组具名的常量,可以通过枚举成员的名称来引用对应的值。简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值。
2024-07-05 14:49:39
713
原创 Deck.gl学习笔记(二):核心类中文文档翻译(持续更新中)
Accessors: 访问器是一种将data中的对象映射到其可视配置的道具,例如圆的半径,线的颜色等。accessor接受两个参数,4. useDevicePixels(Boolean): 如果为真,设备的全分辨率将用于渲染,这个值可以在每帧中 变,比如在屏幕之间移动窗口或改变浏览器的缩放级别。从那以后,为了最大化性能,deck。World:世界坐标系,这里的数值就是经纬度与海拔,这个坐标系本质上是墨卡托坐标系,所以其内部空间是非线性坐标,一般只用于作输入传入,几何运算与线性变换都不在这个坐标系处理。
2024-07-05 14:31:52
2220
1
原创 Decl.gl学习笔记(一)
Deck.gl 是一个强大的工具,可以帮助开发者创建高性能和高度互动的数据可视化应用。通过其丰富的 Layer 类型和与地图库的兼容性,可以非常方便地处理和展示大量复杂数据。
2024-07-05 14:13:04
1870
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人