自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 WebGPU vs. WebGL:前端图形技术的进化与数字孪生的崭新前景

在现代互联网时代,图形渲染在网页应用和数字孪生的开发中起着至关重要的作用。深度学习和AI集成:智能决策的未来 随着深度学习和人工智能的飞速发展,WebGPU的高性能计算能力将成为数字孪生模型中集成机器学习算法的理想平台。WebGPU:现代多核GPU的革命性进展 WebGPU是Web的下一代图形API,旨在为现代多核GPU提供更直接的访问,以实现更高的性能和更丰富的功能。可扩展性和云计算:大规模并行计算的云支持 WebGPU的并行计算能力使得数字孪生模型可以在云端进行大规模的并行计算,而无需昂贵的专用硬件。

2024-04-03 22:33:38 904

原创 尤大大正式官宣推出VitePress 1.0

而Vite则是一个由Vue.js团队开发的下一代前端构建工具,以其出色的性能和快速的热重载而备受瞩目。此外,VitePress还提供了丰富的主题定制功能,使开发者能够根据自己的品牌和风格定制专属的主题。借助Vite的快速热重载和即时开发服务器功能,开发者可以在开发过程中实时预览文档的变化,极大地提高了开发效率。VitePress基于Vite构建,具有出色的性能和快速的热重载,相比之下,VuePress使用Webpack构建,性能可能略逊一筹。对于全球化的文档网站,VitePress提供了便捷的多语言支持。

2024-03-27 16:22:07 304

原创 数字孪生项目中实时数据驱动多节相连车厢沿轨道运行

在之前的文章中,我分享了人员定位的解决方案,里面提到了导航片和寻路算法,这里不赘述了,有需要的同学可以翻阅之前的文章,轨道路线是固定的路线,为了方便后面的计算,我们提取路网线段(三维点坐标集合)并进行全局存储,在这里需要注意一下,我们从路网上提出来的点,会比较稀,点与点之间的间隔或大或小,列车移动给到的数据通常比较精细,误差起码要控制在小数点后一位,为了满足这个要求,我们需要增加路网的点集合密度。整个列车需要拆分成单节的,如果不拆分的话,拐弯的位置就会斜出轨道,大概就是下图的样子。

2024-03-27 15:32:17 372

原创 一文读懂前端异步难题,前端并发控制全解析

在一些前端项目开发过程中,经常需要面对大规模数据的获取和处理,而其中最具挑战性的问题之一就是如何有效地进行并发控制。本文将深入探讨前端并发控制的各种解决方案,从Promise、callback到RxJS,逐一分析其优缺点,并提供详细的实现示例。随着现代网络技术的发展,前端应用越来越需要通过异步请求来获取数据。然而,在大规模数据获取的情况下,同时发起大量请求可能会导致性能问题,甚至影响用户体验。因此,如何进行有效的并发控制成为了一个重要的问题。

2024-03-26 16:56:29 354

原创 20个超实用的JavaScript高级技巧

【代码】20个超实用的JavaScript高级技巧。

2024-01-19 17:48:07 570

原创 王者荣耀与JavaScript策略模式,轻松掌握

策略模式的核心思想是将算法的定义与使用分离,使得它们可以独立变化。在策略模式中,我们有一个上下文对象,它持有一个策略接口的引用,并在运行时选择合适的具体策略。这种模式的灵活性使得我们能够在不改变上下文对象的代码的情况下,动态地切换和组合算法。

2024-01-19 17:03:20 448

原创 ES6中冷门但非常实用的高级技巧

在现代JavaScript编程中,ES6(ECMAScript 2015)引入了许多令人兴奋的新功能和语法,其中一些可能相对较冷门,但却非常实用。本文将深入探讨一些不太为人熟知却极具实际价值的高级技巧,为你展示如何利用这些功能提高代码的可读性和效率。

2024-01-17 18:01:28 334

原创 关于vite,面试官们都问些什么?从初级到高级一镜到底

一文掌握vite面试知识点,轻松应对面试

2024-01-17 17:09:06 989

原创 vue3高阶方法及使用场景,看这一篇就够啦

不讲废话,直奔主题。

2024-01-17 16:19:05 1116

原创 gis数据的运用,webgis的一些常见功能(一)

在之前的文章中我们讲解了gis数据的一些相关知识,随着技术的发展,webgis的应用更加广泛,webgis也成为了web前端的一个重要分支,今天我们一起来看看webgis的一些功能和应用。先来展示一下demo。

2024-01-12 14:55:50 479

原创 利刃出击-MicroApp一探究竟

MicroApp是一款基于类WebComponent进行渲染的微前端框架,不同于目前流行的开源框架,它从组件化的思维实现微前端,旨在降低上手难度、提升工作效率。MicroApp 的核心功能在CustomElement基础上进行构建,CustomElement用于创建自定义标签,并提供了元素的渲染、卸载、属性修改等钩子函数,我们通过钩子函数获知微应用的渲染时机,并将自定义标签作为容器,微应用的所有元素和样式作用域都无法逃离容器边界,从而形成一个封闭的环境。相比之下,MicroApp显然更高一筹。

2024-01-07 22:26:18 426

原创 微前端小试牛刀 - qiankun实战

借助 loadMicroApp 函数来实现手动加载和卸载子项目,一般有 keep-alive 需求的就是 tab 页,新增一个 tab 页时就加载这个子项目,关闭 tab 页时卸载这个子项目。子项目 keep-alive 其实就是想在子项目切换时不卸载掉,仅仅是样式上的隐藏(display: none),这样下次打开就会更快。子应用监听到主应用被点击的marker,成功创建面板,并调用主应用中的方法,创建出面板。3.子应用webpack配置,在vue.config.js中。3.主应用注册子应用App。

2024-01-04 17:22:54 408

原创 关于GIS的一些见解,GIS数据(四)

背景介绍地理信息系统(GIS)的崛起标志着我们对地球表面的理解进入了一个全新的时代。通过整合地理空间数据、进行空间分析和制图,GIS为我们提供了深入了解和解决空间问题的工具。而在GIS中,坐标系统作为其基础构件,扮演着不可或缺的角色。本文将聚焦于坐标系统,深入探讨其基础原理、历史演变、应用实践以及未来发展趋势。文章目的本文的目的是帮助读者全面理解地图中的坐标系统。我们将从基础知识出发,介绍坐标系统的概念和其在GIS中的关键作用。

2024-01-04 17:00:49 880

原创 JavaScript中最重要的5个Observer,看这一篇就够了

MutationObserver用于监听DOM对象的变更,包括节点属性的变化、子节点的增删改等。提供了方便的方式监听DOM变化。

2024-01-04 01:03:51 969

原创 数字孪生及UE项目中的事件管理与时间轴

在过往做过的绝大多数可视化项目,为了高效,我们都会选择不同的前端框架来进行开发,最常见的就是react和vue,其中vue偏多,因为vue的成本可能会更低,vue的好处不是今天主要讨论的点,框架的好处可以在2D页面开发时显现优势,但是在大型的三维场景开发过程中,框架对业务本身并没有太大的帮助。

2024-01-03 16:15:04 1064

原创 关于GIS的一些见解,GIS数据(三)

在中我们讲到了什么是地图服务,在地图服务中,我们提到了地图瓦片(切片)服务,今天这一篇,我们就来继续深入讲讲。

2024-01-03 01:04:45 841

原创 关于GIS的一些见解,GIS数据(二)

在中我们简单介绍了GIS数据中矢量数据和栅格数据的概念,以及常见的数据文件类型。这篇文章我们接着第一篇文章继续分析,观察。在我们的项目开发中可能会涉及到一些甲方是“政府”,“涉密”等。所以大概率人家转完GeoJSON数据后也“不敢”把GeoJSON数据传到你的平台上或者直接拿给你用。所以一般甲方会提供样例数据,我们开发完后,甲方再替换自己的真实数据。

2023-12-31 16:40:27 792

原创 JavaScript所有的字符串使用方法及场景(包括es6及以后),这一篇就够了

使用场景:返回指定子字符串最后一次出现的位置,如果不存在则返回 -1。使用场景:返回指定子字符串第一次出现的位置,如果不存在则返回 -1。使用场景:判断字符串是否以指定的子字符串结尾。使用场景:提取字符串的一部分,不修改原字符串。使用场景:判断字符串是否以指定的子字符串开头。使用场景:提取字符串的一部分,不修改原字符串。使用场景:判断字符串是否包含某个子字符串。使用场景:替换字符串中的匹配子字符串。使用场景:返回字符串对象的字符串表示。使用场景:去除字符串两端的空白字符。使用场景:返回字符串对象的原始值。

2023-12-31 01:01:04 308

原创 JavaScript所有的数组使用方法及场景(包括es6及以后),这一篇就够了

使用场景:返回一个包含数组中每个索引的新Array Iterator对象。使用场景:创建一个新数组,其结果是对原数组中的每个元素调用提供的函数。使用场景:创建一个新数组,其中包含通过提供函数实现的测试的所有元素。使用场景:返回数组中第一个找到的元素的索引,如果不存在则返回 -1。使用场景:对数组中的所有元素执行一个累积器函数,并返回累积的结果。使用场景:从类似数组或可迭代对象创建一个新的数组实例。使用场景:返回数组中通过测试的第一个元素的索引。使用场景:返回数组中通过测试的第一个元素的值。

2023-12-31 00:52:18 341

原创 关于GIS的一些见解,GIS数据(一)

网上关于gis基础的知识很多了,小编在这里就不做复制粘贴了,可以先学习《前后端都要懂一点的 GIS》文章中的内容GIS(地理信息系统)数据在空间分析和地图制图中起着关键的作用。GIS数据通常分为矢量数据和栅格数据两种主要类型。

2023-12-31 00:02:56 977

原创 数字孪生项目中的导航片及寻路实现算法的探索

导航片可以是一个mesh面,一个gltf,也可以是其他任意一个形状的东西,具体取决于项目的需求和建模人员选择的实现方式。A*算法等寻路算法可以在这样的网格上进行,以确定从一个网格到另一个网格的路径。在上一篇文章中我们讲了在智慧矿山等项目中的巷道人员定位实现,其中提到了导航片和寻路这两个点,博主在在一开始的时候也是对这两个概念非常感兴趣,于是在项目开发过程中也做了一些研究。对比上面的四种,我们可以得出结论,跳点算法是相对高效的寻路算法,但是,在项目中,路网并没有网格信息,所以再看,A。

2023-12-29 18:56:03 1616

原创 巷道里的人员定位,导航及规划路径上的设备扫描,欧几里得的应用与实践

我们在做导航路径的时候得到导航路径的所有点位数组B,所有设备的坐标为数组A,其中,(x1​,y1​,z1​) 是A组中的一个点的坐标,(x2​,y2​,z2​) 是B组中的一个点的坐标。开源算法的能力,这里不赘述,需要注意的一点是,我们在项目中遇到的需求是点击人员,规划路径到最近的避难点,我们选择的方式是在人员定位基站的孪生体信息中绑定该基站最近的避难点编号的方式规划的路径,寻路和空间点位置计算都无法准确的解决这个问题,这个需要后面再探讨。这一步是项目前期需要跟建模同学沟通的,略过。

2023-12-29 18:15:00 802

原创 three+vue点云模型加载

经过一些尝试和研究了threejs的PCDLoader以后,发现其加载性能还是不够友好,所以我重写了loader,目前支持多片点云模型加载,点云规模在5000万左右。点云数据过大,尝试用threejs直接加载结果直接崩了,在cloudcomPare软件中加载发现模型点位高达2500多万,这肯定不行,找方法优化模型(点位去重)。这个工具根据点之间的最小距离删除点云中的重复点。附上loader的代码,希望能对正在阅读这篇文章的你有所帮助。抽稀后五百多万,满足我们的需求了,模型质量达到需求标准。

2023-12-29 17:57:47 449 1

空空如也

空空如也

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

TA关注的人

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