前端实战:用HTML/CSS/JS打造交互式生日蛋糕网页应用

news2026/5/12 13:54:40
1. 项目概述一个用代码烘焙的生日惊喜最近给朋友准备生日礼物不想再走寻常路琢磨着送点特别的。作为一个整天和代码打交道的人我决定用最熟悉的工具——HTML、CSS和JavaScript——亲手“烘焙”一个数字生日蛋糕。这个项目“Responsive Birthday Cake”的初衷很简单把传统生日派对的温馨和互动感搬到网页上让祝福跨越物理距离变得可玩、可互动、可分享。这个网页版蛋糕的核心远不止一个静态的图片。它包含了用CSS精心绘制的蛋糕本体用JavaScript随机生成的、五彩缤纷的糖霜装饰toppings以及最关键的交互环节吹蜡烛。为了实现这个经典动作我设计了两种交互模式——麦克风模式和光标模式。用户可以选择对着麦克风吹气或者用鼠标光标去“扇灭”蜡烛火焰让网页能响应真实世界的动作。此外页面还会友好地提示访客输入自己的名字并将这个名字动态显示在页面上让每个打开页面的人都能获得一份专属的祝福体验。虽然目前是1.0版本在浏览器兼容性和部分交互细节上还有打磨空间但它已经完整地实现了一个趣味网页应用的核心闭环视觉呈现、用户交互和个性化体验。无论你是前端新手想学习如何将基础三件套HTML/CSS/JS组合成一个有趣的项目还是想为朋友制作一份独特的数字礼物这个案例都能提供从思路到代码的完整参考。接下来我会详细拆解这个蛋糕的每一层“配方”和“烘焙”过程。2. 项目核心思路与技术选型解析2.1 为什么选择纯前端技术栈这个项目完全基于HTML、CSS和JavaScript没有依赖任何外部框架或库。这是一个非常明确的技术选型其背后的考量主要有三点2.1.1 极致的轻量与便捷性作为一份即开即用的“礼物”首要原则是降低接收方的使用门槛。纯静态文件意味着朋友收到后只需要双击一个index.html文件任何现代浏览器都能直接运行无需安装任何环境、配置服务器或处理依赖。这比发送一个需要npm install和npm run dev的项目要友好得多。所有逻辑、样式和资源都封装在几个文件内传递和分享的成本极低。2.1.2 聚焦核心技能的综合练习HTML构建骨架CSS负责美容JavaScript注入灵魂。这个项目恰好是这三个核心技术的完美练兵场。通过它可以实践HTML5文档结构、canvas或许用于更复杂的图形、audio用于背景音乐或音效当前版本未使用但可扩展。CSS3这是项目的视觉核心。需要大量运用border-radius制作圆形糖粒和蛋糕层用linear-gradient和radial-gradient创造奶油糖霜的质感用box-shadow增加立体感用flexbox或grid进行基础布局。JavaScript (ES6): 处理用户输入姓名提示框、操作DOM动态添加糖粒、更新姓名文本、响应事件点击模式切换按钮、以及调用Web APIgetUserMedia访问麦克风PointerEvent处理光标移动。2.1.3 明确的未来可扩展性从作者列出的“未来计划”可以看出这是一个有生命力的项目。纯前端架构使得后续添加功能如“礼物”动画、响应式适配、服务集成非常清晰。例如“Gifts”功能可以通过添加CSS动画或JS动画库来实现“My own service website”链接可以轻松通过一个a标签集成。这种技术栈为渐进式增强提供了干净的基础。2.2 交互模式设计的权衡麦克风 vs. 光标项目提供了两种吹灭蜡烛的交互方式这并非多余而是基于不同用户场景和设备能力的贴心设计。2.2.1 麦克风模式追求沉浸感与仪式感这是作者推荐的“最佳选择”。其设计逻辑是模拟真实的吹蜡烛动作通过浏览器的Web Audio API或getUserMediaAPI分析麦克风输入的音频流。工作原理代码会持续监听麦克风输入当检测到持续、有一定强度的气流声音频率特征可能集中在低频时即判定为“吹气”动作进而触发蜡烛火焰的动画如缩小、摇曳、熄灭和状态改变。优势交互方式自然、有趣极大地增强了网页的沉浸感和生日派对的仪式感。它让用户从被动的“观看者”变成了主动的“参与者”。挑战与注意事项正如作者所言这是“bug较少”但依然有坑的模式。首先它需要用户授权麦克风权限在Chrome、Safari等浏览器中必须在安全的上下文HTTPS或localhost中才能自动获取否则用户可能因安全提示而感到困惑。其次音频处理需要算法来区分吹气声、环境噪音和说话声阈值设置需要反复调试。一个实用的技巧是在代码中增加一个可视化的灵敏度调试器或者提供“校准”按钮让用户在安静环境下对着麦克风吹一次来设定基准阈值。2.2.2 光标模式提供无障碍与备用方案光标模式作为备选方案其存在价值非常重要。工作原理监听鼠标移动mousemove事件或触摸移动touchmove事件。当光标移动到蜡烛火焰一定范围内或者移动速度超过某个阈值模拟快速扇动的动作时触发火焰熄灭。设计初衷1.兼容性兜底对于没有麦克风、麦克风故障或拒绝授权麦克风的用户这提供了另一种互动途径。2.移动端适配雏形在移动设备上“吹气”交互并不直观且易受环境影响而手指滑动则是一种更自然的替代方式。当前版本的“buggy”可能正是指移动端触摸事件处理不完善或与桌面端事件冲突。问题排查方向光标交互的“bug”通常源于事件处理的精度和性能。例如是否在mousemove事件中做了过于复杂的计算导致卡顿判断“扇灭”的逻辑是否过于敏感光标轻轻掠过就熄灭或过于迟钝一个改进思路是将“熄灭”触发条件从“进入区域”改为“在区域内快速来回移动多次”更模拟扇风的动作模式。注意在实现这类交互时务必考虑用户体验的优雅降级。页面加载后可以先检测设备是否支持麦克风并优先推荐麦克风模式。如果检测失败或用户拒绝则自动高亮或切换到光标模式并给出文字提示“未检测到麦克风您可以使用鼠标模拟扇风动作来吹灭蜡烛”。3. 视觉构建用CSS“烘焙”蛋糕的细节3.1 蛋糕主体的层叠结构与质感实现一个视觉上令人有食欲的蛋糕关键在于层次感和质感。我们不可能用一张图片了事必须用CSS代码“画”出来。3.1.1 结构分解典型的生日蛋糕可以拆解为多个层叠的div元素每个代表蛋糕的一部分div classcake div classplate/div !-- 蛋糕底盘 -- div classlayer bottom/div !-- 底层蛋糕胚 -- div classlayer middle/div !-- 中层蛋糕胚 -- div classlayer top/div !-- 顶层蛋糕胚 -- div classicing/div !-- 覆盖在最顶层的糖霜 -- div classcandle div classflame/div !-- 蜡烛火焰 -- /div !-- 糖霜装饰点将由JS动态添加到这里 -- /div3.1.2 关键CSS技巧蛋糕胚.layer使用border-radius设置底部较大的圆角顶部较小的圆角形成鼓胀的感觉。背景色使用linear-gradient从浅棕色到更浅的棕色模拟烘焙后的色泽渐变。.layer { width: 300px; height: 80px; border-radius: 50% 50% 20px 20px; /* 上圆下平 */ background: linear-gradient(to bottom, #d2691e 0%, #f4a460 30%, #d2691e 100%); margin: 0 auto; /* 层叠居中 */ position: relative; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.2); /* 内阴影增加立体感 */ }糖霜.icing这是表现质感的关键。它应该不规则地覆盖在顶层蛋糕胚上。可以用一个更大的border-radius并利用::before和::after伪元素添加滴落效果。.icing { width: 320px; /* 比蛋糕胚略宽 */ height: 40px; background: #fff0f5; /* 淡粉色 */ border-radius: 50%; position: absolute; top: -20px; /* 覆盖在顶层蛋糕上 */ left: 50%; transform: translateX(-50%); box-shadow: 0 5px 15px rgba(255, 182, 193, 0.5); } .icing::after { content: ; position: absolute; bottom: -15px; left: 20%; width: 30px; height: 30px; background: inherit; border-radius: 50%; } /* 创建一个滴落的糖霜点 */蜡烛与火焰蜡烛是细长的矩形火焰则是一个底部宽顶部窄的椭圆并使用CSS动画keyframes flicker让其微微跳动模拟燃烧效果。火焰动画是交互前的视觉焦点。.flame { width: 20px; height: 40px; background: radial-gradient(ellipse at center, #ffde00 10%, #ff4500 70%, transparent 90%); border-radius: 50% 50% 20% 20%; animation: flicker 0.3s infinite alternate ease-in-out; } keyframes flicker { 0% { transform: scale(1, 1); opacity: 0.9; } 100% { transform: scale(1.05, 0.95); opacity: 1; } }3.2 动态糖霜装饰JavaScript的随机艺术静态的蛋糕还不够生动随机生成的彩色糖霜装饰toppings能带来惊喜感。这部分逻辑完全由JavaScript驱动。3.2.1 生成策略定位容器糖霜应该被限制在.icing这个区域内。我们需要获取.icing元素在页面中的位置和大小getBoundingClientRect。随机生成使用一个循环例如生成30个糖霜点在每一步中创建一个新的div元素。随机分配其大小例如宽度和高度在5px到15px之间、颜色从一个预设的鲜艳颜色数组中随机选取如[‘#FF6B6B‘, ‘#4ECDC4‘, ‘#FFD166‘, ‘#06D6A0‘, ‘#118AB2‘]。最关键的是随机位置在.icing的边界框内随机生成一个left和top值需考虑糖霜点自身大小避免超出边界。为每个糖霜点设置border-radius: 50%使其呈圆形。最后将这个div追加到.icing容器内。3.2.2 代码示例与优化点function createRandomToppings(icingElement, count) { const colors [#FF6B6B, #4ECDC4, #FFD166, #06D6A0, #118AB2]; const icingRect icingElement.getBoundingClientRect(); for (let i 0; i count; i) { const topping document.createElement(div); const size Math.random() * 10 5; // 5px 到 15px const color colors[Math.floor(Math.random() * colors.length)]; // 计算随机位置确保在icing区域内 const maxLeft icingRect.width - size; const maxTop icingRect.height - size; const left Math.random() * maxLeft; const top Math.random() * maxTop; Object.assign(topping.style, { position: absolute, width: ${size}px, height: ${size}px, backgroundColor: color, borderRadius: 50%, left: ${left}px, top: ${top}px, pointerEvents: none // 避免干扰上层交互 }); icingElement.appendChild(topping); } }实操心得为了让随机分布更自然避免糖霜点堆积在中心或边缘可以尝试使用泊松圆盘采样等算法来生成更均匀的随机点。但对于一个小项目简单的边界内随机已经足够。此外为糖霜点添加微小的box-shadow可以增加立体感让它们看起来更像是撒在糖霜上的实物。4. 交互逻辑深度实现与代码剖析4.1 麦克风音频处理从气流到火焰动画这是项目的技术亮点。我们需要从麦克风获取音频流并分析其强度来判断是否在“吹气”。4.1.1 获取并分析音频流class MicrophoneBlowDetector { constructor(onBlowCallback) { this.onBlowCallback onBlowCallback; // 当检测到吹气时调用的函数 this.audioContext null; this.analyser null; this.microphone null; this.isBlowing false; this.BLOW_THRESHOLD 0.7; // 音量阈值需要根据实际情况调整 this.BLOW_DURATION 300; // 持续吹气时间(ms) this.blowStartTime 0; } async init() { try { const stream await navigator.mediaDevices.getUserMedia({ audio: true }); this.audioContext new (window.AudioContext || window.webkitAudioContext)(); this.analyser this.audioContext.createAnalyser(); this.microphone this.audioContext.createMediaStreamSource(stream); this.microphone.connect(this.analyser); this.analyser.fftSize 256; const bufferLength this.analyser.frequencyBinCount; const dataArray new Uint8Array(bufferLength); const checkVolume () { this.analyser.getByteFrequencyData(dataArray); // 计算平均音量强度 (0-255) let sum 0; for (let i 0; i bufferLength; i) { sum dataArray[i]; } const averageVolume sum / bufferLength / 255; // 归一化到0-1 if (averageVolume this.BLOW_THRESHOLD) { if (!this.isBlowing) { this.blowStartTime Date.now(); this.isBlowing true; } else if (Date.now() - this.blowStartTime this.BLOW_DURATION) { // 持续吹气超过设定时间判定为有效吹气动作 this.onBlowCallback(); this.isBlowing false; // 重置状态防止连续触发 } } else { this.isBlowing false; } requestAnimationFrame(checkVolume); }; checkVolume(); } catch (err) { console.error(无法访问麦克风:, err); // 在这里可以优雅降级例如提示用户切换到光标模式 } } }4.1.2 与火焰动画联动当onBlowCallback被触发时应执行熄灭蜡烛的动画序列。例如首先增强火焰的flicker动画幅度模拟被风吹动。然后在短暂延迟后将火焰元素的高度和宽度逐渐缩小至0使用transform: scale(0)并配合transition同时改变颜色为灰色。最后显示一个“蜡烛已吹灭”的提示或者触发后续的庆祝动画如撒花效果。重要提示音频分析非常依赖环境。在安静的房间里阈值BLOW_THRESHOLD可能设为0.3就足够但在嘈杂环境下可能需要0.8或更高。一个专业的做法是在初始化后引导用户进行一个简单的校准提示用户“请对着麦克风吹气”并记录下此时的平均音量将其乘以一个系数如1.5作为动态阈值。4.2 光标交互的精细化处理光标模式的目标是识别出“扇风”的意图而不是简单的悬停。4.2.1 改进的扇风动作识别我们可以通过跟踪光标在火焰附近的速度和方向变化来判断。class CursorBlowDetector { constructor(flameElement, onBlowCallback) { this.flameElement flameElement; this.onBlowCallback onBlowCallback; this.flameRect flameElement.getBoundingClientRect(); this.lastX 0; this.lastY 0; this.lastTime 0; this.speedBuffer []; // 用于存储最近几次的速度值 this.isNearFlame false; document.addEventListener(mousemove, this.handleMouseMove.bind(this)); // 同样需要为移动端添加 touchmove 事件监听 } handleMouseMove(event) { const currentX event.clientX; const currentY event.clientY; const currentTime Date.now(); // 1. 判断光标是否在火焰附近区域可以比火焰视觉区域大一圈 const flameCenterX this.flameRect.left this.flameRect.width / 2; const flameCenterY this.flameRect.top this.flameRect.height / 2; const distance Math.sqrt((currentX - flameCenterX) ** 2 (currentY - flameCenterY) ** 2); const NEAR_DISTANCE 100; // 像素 if (distance NEAR_DISTANCE) { this.isNearFlame true; // 2. 计算瞬时速度 if (this.lastTime 0) { const deltaTime (currentTime - this.lastTime) / 1000; // 秒 const deltaX currentX - this.lastX; const deltaY currentY - this.lastY; const speed Math.sqrt(deltaX ** 2 deltaY ** 2) / deltaTime; // 像素/秒 this.speedBuffer.push(speed); if (this.speedBuffer.length 5) this.speedBuffer.shift(); // 保持最近5次速度 // 3. 判断是否为扇风动作速度高且变化大 const avgSpeed this.speedBuffer.reduce((a, b) a b, 0) / this.speedBuffer.length; const speedVariance Math.max(...this.speedBuffer) - Math.min(...this.speedBuffer); if (avgSpeed 500 speedVariance 300) { // 阈值需调试 this.onBlowCallback(); this.speedBuffer []; // 触发后清空缓存防止重复触发 } } } else { this.isNearFlame false; this.speedBuffer []; // 离开区域后清空缓存 } this.lastX currentX; this.lastY currentY; this.lastTime currentTime; } }4.2.2 移动端触摸适配对于touchmove事件逻辑类似但要注意使用event.touches[0].clientX和event.touches[0].clientY获取位置。可能需要通过event.preventDefault()来防止触摸时页面的滚动但要谨慎使用避免影响其他正常操作。5. 项目工程化与未来优化路线5.1 当前架构的优缺点与模块化重构目前的项目结构简单直接所有功能可能都写在少数几个JS文件中。这对于小型演示是可行的但随着功能增加如添加多个礼物动画、背景音乐控制、状态管理代码会迅速变得难以维护。5.1.1 建议的模块化拆分可以按功能将代码拆分为独立的模块cakeRenderer.js: 负责所有与蛋糕视觉相关的DOM创建和CSS操作生成蛋糕层、糖霜、装饰。blowDetector.js: 抽象类定义detectBlow()接口。派生出MicrophoneBlowDetector和CursorBlowDetector两个子类。flameAnimation.js: 管理蜡烛火焰的所有状态燃烧、摇曳、熄灭及对应的CSS动画。uiManager.js: 处理用户界面逻辑如姓名输入弹窗、模式切换按钮、状态提示等。main.js: 主入口文件初始化以上所有模块并协调它们之间的通信。5.1.2 状态管理引入一个简单的状态管理即使是使用一个纯JavaScript对象来记录当前应用状态如const appState { userName: , candleLit: true, currentMode: microphone, // microphone 或 cursor giftsUnlocked: false, };所有模块都读取和响应这个状态的变化而不是直接互相调用函数这能降低耦合度。5.2 “未来清单”的可行性实施路径作者列出了清晰的未来计划这里为其提供具体的实现思路Fix cursor interaction: 采用上述4.2.1节改进的速度与方差检测算法并彻底测试移动端触摸事件。可以添加一个视觉反馈当光标快速移动时在光标后显示一阵“微风”的粒子轨迹让交互更直观。Redesign the cake: 可以考虑使用SVG或canvas来绘制更复杂、更精致的蛋糕图形支持多层、不同形状甚至允许用户自定义蛋糕颜色和糖霜类型。CSS Houdini的Paint API也是一个前沿的探索方向。Browser Compatibility: 这是重中之重。需要建立一个兼容性测试清单使用feature detection而非browser sniffing。例如用if (navigator.mediaDevices navigator.mediaDevices.getUserMedia)来检测麦克风支持。对于旧版浏览器如IE应提供友好的降级提示或直接隐藏高级功能麦克风模式。CSS属性使用前缀可通过PostCSS等工具自动添加并准备supports查询备用方案。Responsive design compatibility (mobile compatible): 采用移动优先的响应式设计。使用viewportmeta标签。CSS使用相对单位rem,vw,%媒体查询media调整蛋糕大小和布局。交互上触摸事件替代鼠标事件吹气模式在移动端可能改为“点击并长按吹气”的虚拟按钮因为移动设备麦克风的位置通常在底部使得真实吹气体验不佳。Gifts: 吹灭蜡烛后可以从屏幕上方掉落礼物盒图标。每个礼物盒点击后可以展开显示一句祝福语、一个小动画或一张图片。这可以通过CSSkeyframes动画结合click事件监听来实现。My own service website: 在页面角落添加一个风格统一的“Made by [Your Name]”链接指向个人作品集网站。这既是一种署名也是个人品牌的低调展示。5.3 部署与分享的最佳实践如何将这份“数字礼物”完美地送达朋友手中最简单的分享将整个项目文件夹压缩成ZIP包通过邮件或即时通讯工具发送。附上简单的说明“解压后双击里面的index.html文件就能打开”更优雅的分享使用免费的静态网站托管服务如GitHub Pages,Vercel, 或Netlify。将代码推送到GitHub仓库。在仓库设置中开启GitHub Pages并选择源分支通常是main或gh-pages。几分钟后你会获得一个类似https://[你的用户名].github.io/[仓库名]/的永久链接。将这个链接发送给朋友他们可以在任何设备的浏览器中直接访问无需下载任何文件。这是最推荐的方式既专业又便捷。个性化定制可以在URL中加入参数实现深度个性化。例如生成一个像https://your-site.com/cake?nameAlexthemeblue这样的链接。页面加载时JavaScript解析URL参数自动将名字填充为“Alex”并将蛋糕主题色改为蓝色。这需要一些额外的JS代码来处理URLSearchParams。这个“响应式生日蛋糕”项目从一个温馨的念头出发演化成一个融合了前端核心技术与创意交互的完整作品。它证明了代码不仅是构建工具的工具也是传递情感、创造惊喜的媒介。从绘制第一块蛋糕胚到调试麦克风里那阵虚拟的风每一步都充满了工程师特有的浪漫。希望这个详细的拆解不仅能让你复现这个蛋糕更能启发你用它作为基石去创造属于你自己的、更炫酷的数字礼物。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2606299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…