针对送粉式激光熔覆的特点,基于生死单元法建立了一种可以同时计算瞬态温度场及熔覆层几何形貌的三维数值模型,模型中考虑了送粉过程中激光能量的衰减和粉末颗粒的温升。基于该模型对送粉式激光熔覆过程中的温度场分布和几何形貌特点进行了分析。结果表明,在熔覆开始较短时间后,工件的瞬态温度分布与熔覆层几何形貌基本保持稳定。进行了不同送粉速率下的送粉式激光熔覆试验,对比了熔覆层横截面几何形貌的试验结果和计算结果,熔覆层表面轮廓线与试验结果基本保持一致,熔覆层的宽度、高度和熔深与试验结果基本吻合,说明了所建立的激光熔覆层几何形貌计算模型的有效性和可靠性。
2024-07-29 10:19:54 4.07MB 激光技术 激光熔覆 数值模拟
1
BevFormer+数据集 cocodataset数据集 Marmousi1 mmdetection数据集COCO VIT算法数据集+cifar-10 VOCdevkit+Unet数据集 YOLO5+NEU-DET数据集 small数据集 datasets+DeepLabV3Plus数据集+datasets+EfficientDet数据集,zip ILSVRC2012 img_ val.tar SFC-using-CNN-Parihaka-3D-main.zip unet++数据集医学细胞数据集,zip VOC07+12+test.zip 有地震数据集含有断层数据二维segy文件和三维segy文件
2024-07-28 16:40:23 170B 深度学习 数据集
1
《LTE—UMTS长期演进理论与实践》是一本深入探讨4G移动通信技术的权威著作,涵盖了LTE(Long Term Evolution)系统从概念到实际应用的全面知识。这本书旨在为读者提供一个理解LTE网络架构、协议栈、操作原理以及与UMTS(Universal Mobile Telecommunications System)演进关系的综合平台。书中的中英文详细书签版,使得国内外读者都能方便地查阅和学习。 LTE是4G通信标准的关键组成部分,它显著提高了数据传输速率和系统容量,为移动互联网和多媒体服务提供了强大的支持。书中的知识点主要包括以下几个方面: 1. **LTE系统概述**:介绍LTE的技术背景,包括为什么要发展LTE,以及它在UMTS演进中的位置。LTE的目标是实现高速率、低延迟、高容量和高效能的无线通信。 2. **网络架构**:详述了EPC(Evolved Packet Core)核心网和eNodeB(Evolved Node B)基站的结构,以及它们如何协同工作,实现无线接入网和核心网之间的无缝连接。 3. **频谱效率**:分析了LTE如何通过OFDM(Orthogonal Frequency Division Multiplexing)调制和多址接入技术提升频谱效率,从而实现更高的数据传输速度。 4. **MIMO(Multiple-Input Multiple-Output)技术**:解释了MIMO如何通过多天线系统提高无线通信的传输速率和可靠性。 5. **HARQ(Hybrid Automatic Repeat reQuest)**:讨论了HARQ是如何结合前向纠错编码和重传机制,优化错误控制,提高数据传输的可靠性的。 6. **资源分配与调度**:阐述了LTE中如何进行下行链路和上行链路的资源分配,以及基于QoS(Quality of Service)的用户调度策略。 7. **移动性管理**:详细讲解了UE(User Equipment)在不同小区间的切换过程,以及如何确保服务质量不受影响。 8. **VoLTE(Voice over LTE)**:介绍了如何在纯IP的LTE网络上实现高质量的语音通信,以及相关的语音编码技术和协议。 9. **演进与5G**:探讨了LTE如何通过增强型LTE(LTE-Advanced)进一步提升性能,并作为5G(第五代移动通信)的基础。 10. **中英文对照**:双语版的优势在于,对于英文不熟悉的读者,可以通过中文理解技术细节;对于英文熟练的读者,可以阅读英文原文,更直观地感受国际通信领域的专业术语。 《LTE—UMTS长期演进理论与实践》是一本对通信工程师、研究学者以及对4G技术感兴趣的读者来说极具价值的参考书籍。通过深入学习,读者不仅可以掌握LTE的核心技术,还能了解其与UMTS演进的关系,为未来5G及更高级别的通信技术奠定坚实基础。
2024-07-28 11:33:18 45.78MB LTE
1
智能型静止进相器中单片机的系统设计、电子技术,开发板制作交流
2024-07-26 10:37:28 206KB
1
海康威视中小学综合 视频监控系统解决方案
2024-07-25 12:11:38 1.59MB 海康威视
1
JavaScript加载等待效果是一种常见用户体验优化技术,用于在数据加载期间向用户展示反馈,告知他们系统正在处理请求。这种效果通常会在用户点击按钮或链接后显示,直到后台数据完全加载完毕。下面将详细介绍实现这一效果的原理及步骤。 一、创建HTML结构 我们需要在页面上设置一个触发加载等待效果的元素,通常是按钮。例如: ```html ``` 这里我们有一个id为`load-btn`的按钮和一个id为`loading-mask`的加载层,初始状态下加载层是隐藏的。 二、CSS样式 为了使加载等待效果更具视觉吸引力,我们可以为加载层添加一些基本样式: ```css #loading-mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.7); display: flex; justify-content: center; align-items: center; z-index: 9999; } ``` 这段CSS代码将加载层设置为全屏覆盖,背景半透明,并居中显示“数据加载中...”。 三、JavaScript实现 接下来,我们需要使用JavaScript来监听按钮点击事件并控制加载层的显示与隐藏。这里我们可以使用原生JavaScript或者jQuery等库来实现: **原生JavaScript:** ```javascript document.getElementById('load-btn').addEventListener('click', function() { var loadingMask = document.getElementById('loading-mask'); loadingMask.style.display = 'flex'; // 在这里执行你的数据加载操作 setTimeout(function() { // 假设数据加载完成,隐藏加载层 loadingMask.style.display = 'none'; }, 2000); // 2秒后模拟数据加载完成 }); ``` **jQuery版本:** ```javascript $('#load-btn').on('click', function() { $('#loading-mask').show(); // 进行数据加载操作 setTimeout(function() { // 模拟数据加载完成,隐藏加载层 $('#loading-mask').hide(); }, 2000); }); ``` 在这段代码中,当用户点击按钮时,加载层会显示出来,然后执行数据加载操作(在这个例子中,我们使用setTimeout模拟了2秒的数据加载时间)。加载完成后,通过JavaScript隐藏加载层。 四、动态加载效果 为了增强用户体验,还可以在加载层中加入动画效果,如旋转的加载图标、进度条等。这可以通过CSS3的动画或JavaScript库如Animate.css实现。 五、注意事项 1. 考虑到性能,避免在加载等待层下执行不必要的DOM操作。 2. 如果数据加载时间过长,可以提供取消或重试的选项。 3. 确保加载层具有合适的z-index,使其始终位于页面其他元素之上。 4. 对于触摸设备,考虑处理touchstart事件,以防止在触摸设备上出现延迟。 总结,JavaScript加载等待效果的实现主要涉及HTML结构、CSS样式以及JavaScript事件监听和控制。通过合理的布局和动画设计,可以显著提升用户的交互体验,让用户在等待数据加载时有明确的反馈,从而提高应用的易用性和满意度。
2024-07-24 09:15:50 16KB 数据加载中 加载等待
1
在 Delphi 开发环境中,创建和管理 MDI(多文档界面)应用程序时,经常需要处理 DLL 动态链接库的问题。本文将详细探讨如何在 MDI 窗体中调用一个作为 DLL 的子窗体。 MDI(Multiple Document Interface)是一种用户界面设计模式,它允许在一个主窗口内打开多个子窗口,每个子窗口可以显示不同的数据或执行不同的功能。在 Delphi 中,MDI 应用程序通常由一个 fsMDIForm 类型的主窗体和多个 fsMDIChild 类型的子窗体组成。 在标题所描述的问题中,开发者试图在主窗体(fsMDIForm)中通过 DLL 调用一个子窗体(fsMDIChild)。具体步骤如下: 1. **加载 DLL**: 在 `Button1Click` 方法中,使用 `LoadLibrary` 函数加载名为 "MdiChild.dll" 的 DLL 文件。`GetProcAddress` 函数用于获取 DLL 中名为 `_ShowTestMng` 的函数指针。 2. **调用 DLL 函数**: 如果成功获取了函数指针,就调用 `_ShowTestMng` 函数,并传递主窗体实例(`TMainform`)作为参数。 3. **DLL 中的函数实现**: 在 DLL 的 `_ShowTestMng` 函数中,首先设置 `Application.Handle` 为从主窗体传递过来的句柄(`MyHandle`),这样可以确保 DLL 中的子窗体与正确的 MDI 主窗口关联。然后,使用 `Application.CreateForm` 创建 `TFrmChild` 类型的子窗体,并调用 `FrmChild.Show` 显示它。 然而,问题出现在 `Application.CreateForm` 这一步骤,错误提示是:“Cannot create form. No MDI Forms are currently active.” 这意味着在尝试创建 MDI 子窗体时,系统找不到活动的 MDI 主窗体。 解决这个问题的关键在于理解 MDI 窗体的生命周期和 DLL 中的上下文。在 Delphi 中,MDI 子窗体必须在 MDI 主窗体的上下文中创建。当在 DLL 中创建 MDI 子窗体时,由于 DLL 和主程序运行在不同的上下文中,因此需要正确地传递和使用 MDI 主窗体的信息。 一种可能的解决方案是: 1. **传递 MDI 主窗体引用**: 在主窗体中,除了传递 `MyHandle` 外,还可以考虑传递一个对 `TMainform` 类的引用,而不是简单的窗口句柄。这样在 DLL 中可以直接访问到主窗体对象,而不必依赖 `Application.Handle`。 2. **在 DLL 中正确使用主窗体引用**: 在 DLL 的 `_ShowTestMng` 函数中,使用主窗体对象来创建 MDI 子窗体,而不是直接调用 `Application.CreateForm`。例如,可以添加一个方法到 `TMainform` 类,让 DLL 调用这个方法来创建子窗体。 ```delphi // 在 TMainform 类中添加方法 procedure TMainform.CreateMDIChild; begin Application.CreateForm(TFrmChild, FrmChild); FrmChild.MDIParent := Self; // 设置 MDI 子窗体的父窗体 FrmChild.Show; end; // 在 DLL 中调用主窗体的方法 procedure _ShowTestMng(var adm: TMainform); begin result := true; adm.CreateMDIChild; end; ``` 通过这种方式,DLL 可以利用主窗体对象来创建和管理 MDI 子窗体,确保子窗体与正确的 MDI 主窗口关联,从而避免上述错误。 处理 MDI 窗体和 DLL 之间的交互时,需要注意正确的上下文传递和使用,以及 MDI 窗体生命周期的管理。正确地处理这些细节将确保 MDI 应用程序的正常运行。
2024-07-23 16:20:54 26KB delphi
1
本实例使用threejs+vue,实现三维IT机房可以将机房数据可视化,让企业更好的监控和管理 IT 机柜,在前端页面对 IT 机房进行三维展示,当鼠标划入IT 机柜的时候,提示当前机柜的详细信息,一键显示机房中过热的机柜,包含机房模型。下载即可允许,代码清晰明了,容易理解
2024-07-23 15:30:18 998KB javascript threejs vue
1
在Lua编程语言中,SQLite是一种常用的轻量级嵌入式数据库引擎,可以在应用程序内部处理数据库操作,无需外部服务器进程。本教程将详细讲解如何在Lua中集成和使用SQLite进行数据库管理。 为了在Lua中使用SQLite,我们需要导入相应的库。在Lua中,通常使用luasql模块来实现这一目标。以下是如何导入SQLite3库的代码: ```lua sqlite3 = require "luasql.sqlite3" ``` 完成导入后,我们可以创建一个SQLite环境,接着建立到数据库的连接。环境(`env`)是luasql的一个实例,而连接(`conn`)则是与特定数据库的交互接口。下面展示了如何创建环境和连接: ```lua local env = sqlite3.sqlite3() local conn = env:connect('mydb.sqlite') ``` 这里的`mydb.sqlite`是数据库文件名,如果文件不存在,SQLite会自动创建。 在连接建立之后,我们可以通过`conn:execute()`方法执行SQL语句。例如,创建一个名为`sample`的表,包含两个字段`id`(整型)和`name`(文本型): ```lua status, errorString = conn:execute([[CREATE TABLE sample ('id' INTEGER, 'name' TEXT)]]) ``` 执行成功时,`status`将为非零值,`errorString`为`nil`;若有错误,`status`为`nil`,`errorString`会包含错误信息。 在Lua中插入数据使用`INSERT INTO`语句,如下所示: ```lua status, errorString = conn:execute([[INSERT INTO sample values('11','Raj')]]) ``` 查询数据则通过`SELECT`语句配合游标(`cursor`)进行。以下代码演示了如何执行一个`SELECT`语句并打印结果: ```lua cursor, errorString = conn:execute([[select * from sample]]) row = cursor:fetch ({}, "a") while row do print(string.format("Id: %s, Name: %s", row.id, row.name)) row = cursor:fetch (row, "a") end ``` `cursor:fetch()`方法用于获取查询结果的下一行,直到没有更多数据为止。 以下是一个完整的Lua程序示例,包括创建表、插入数据和查询数据的全过程: ```lua sqlite3 = require "luasql.sqlite3" local env = sqlite3.sqlite3() local conn = env:connect('mydb.sqlite') print(env, conn) status, errorString = conn:execute([[CREATE TABLE sample ('id' INTEGER, 'name' TEXT)]]) print(status, errorString) status, errorString = conn:execute([[INSERT INTO sample values('1','Raj')]]) print(status, errorString) cursor, errorString = conn:execute([[select * from sample]]) print(cursor, errorString) row = cursor:fetch ({}, "a") while row do print(string.format("Id: %s, Name: %s", row.id, row.name)) row = cursor:fetch (row, "a") end ``` 总结一下,在Lua中使用SQLite涉及的主要步骤包括:导入SQLite3库,创建环境和连接,执行SQL语句(如创建表、插入数据),以及通过游标遍历查询结果。这个过程可以帮助开发者在不依赖外部数据库服务的情况下在Lua应用中实现数据库功能。
2024-07-21 19:44:12 48KB Lua SQLite
1
C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中
2024-07-20 12:20:52 163KB matlab
1