当前位置: 首页 > news >正文

数学函数双曲线音频图表(y=1/x 双曲线)|图表代码示例

制作一个简单的演示,展示了如何通过音线进行音化。在这种情况下,我们对方程 y = 1 / x 进行了音化。该图在 x=0 处有一个垂直渐近线,y=0 处有一个水平渐近线,形成了一个双曲形状,函数接近但从不接触 X 轴和 Y 轴。

完整可运行HTML代码

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>数学函数音频可视化</title> <style> body { margin:0; padding:10px; height: 100vh; box-sizing:border-box; } #sonify { padding: 8px 22px; font-size:14px; background:#2f7ed8; color:white; border:none; border-radius:4px; cursor:pointer; margin-bottom:10px; } #container { height: calc(100% - 50px); } </style> </head> <body> <button id="sonify">播放音频可视化</button> <div id="container"></div> <script src="https://code.highcharts.com/11.4.0/highcharts.js"></script> <script src="https://code.highcharts.com/11.4.0/modules/sonification.js"></script> <script src="https://code.highcharts.com/11.4.0/modules/accessibility.js"></script> <script> // 生成数据:y = 1/x 双曲线 const data = []; for (let x = -6; x < 6; x += 0.01) { data.push([ x, Math.round(x * 100) ? 1 / x : null ]); } // 创建图表 const chart = Highcharts.chart('container', { chart: { height: '100%' }, title: { text: '数学函数音频可视化', align: 'left' }, sonification: { duration: 8000, defaultInstrumentOptions: { instrument: 'basic1', roundToMusicalNotes: false } }, accessibility: { landmarkVerbosity: 'one' }, xAxis: { min: -6, max: 6, gridLineWidth: 1, tickInterval: 1, crossing: 0 }, yAxis: { min: -6, max: 6, tickInterval: 1, lineWidth: 1, crossing: 0, title: { text: null } }, legend: { enabled: false }, tooltip: { headerFormat: '', pointFormat: 'y = {point.y:.2f}' }, series: [{ data: data }] }); // 修复按钮点击:强制激活音频上下文,永远不会无反应 document.getElementById('sonify').addEventListener('click', async function () { // 解决浏览器音频拦截 if (window.AudioContext || window.webkitAudioContext) { const tempCtx = new (window.AudioContext || window.webkitAudioContext)(); await tempCtx.resume(); } chart.toggleSonify(); }); </script> </body> </html>

本案例对函数y = 1/x进行音频化处理。该图像在x=0处存在垂直渐近线,在y=0处存在水平渐近线,整体呈现双曲线形态;函数曲线无限靠近 X 轴与 Y 轴,但永远不会与坐标轴相交。

代码核心逻辑

  1. 数据生成循环遍历x取值范围-6 ~ 6,步长 0.01 密集取点;当x=0时分式无意义,手动赋值为空值断开曲线,避免程序报错,最终生成完整双曲线坐标数据集。

  2. 图表基础配置

  • 坐标轴:设定 XY 轴取值范围均为-6~6,开启网格线,坐标轴原点交于(0,0)
  • 隐藏图例,精简界面
  • 悬浮提示:鼠标悬停显示精准坐标y=数值
  1. 音频可视化核心配置
  • 总播放时长:8 秒
  • 发声乐器:基础合成音色
  • 音调规则:不强制对齐标准乐理音符,完全跟随函数数值高低实时变化

功能说明

  • 图表:双曲线y = 1/x
  • 音频:随着曲线高低发出连续音调(越高音越高,越低音越低)
  • 按钮:点击播放 / 暂停
http://www.zskr.cn/news/1318333.html

相关文章:

  • 基于二维码技术的设备管理系统实战 - 从架构设计到扫码盘点落地
  • 64 Nginx静态资源盗链的效果展示
  • LizzieYzy:围棋AI分析工具的三大突破,让你拥有职业棋手的复盘能力
  • 终极Windows桌面整理指南:用NoFences告别混乱,免费实现高效分区管理
  • RT-Thread SysTick深度优化:从微秒级精度到低功耗实战
  • 别再乱按了!示波器Autoset和Run/Stop的正确用法,看完这篇就够了
  • 从OJ题解到实战:自定义字符序下的多字符串比较策略
  • WeChatMsg:创新聊天记录管理工具,永久保存你的数字记忆
  • Chrome扩展开发进阶:利用Omnibox API打造你的专属命令行工具(含搜索建议实现)
  • 【音视频 | H.264】从NALU到图像:解码H.264码流的关键步骤与实战解析
  • 从SES价签到ESP32墨水屏驱动板:自制低成本电子价签全记录
  • 快速出圈秘诀:口腔门诊设计出圈策略
  • 双连通分量
  • 对比直接使用官方API通过聚合平台管理网站AI调用的体验
  • 如何正确使用括号提升中国科学技术大学学位论文排版质量
  • STC12C5A60S2单片机驱动DHT11和OLED,手把手教你做一个桌面温湿度计(附完整代码)
  • 一、Mysql8.0.34-从零部署到首次连接实战
  • 终极指南:使用d3dxSkinManage轻松管理你的游戏皮肤MOD
  • 杭州4家优质宠物店深度实测,覆盖全人群需求,选宠不踩雷 - 范德萨的得到
  • d2s-editor:暗黑破坏神2存档编辑器的现代化网页解决方案
  • 在阿里云GPU服务器上,用nnU-Net v2搞定牙齿3D分割(从环境配置到五折训练全记录)
  • 开源操作系统生态共建与人才培养:从技术原理到实践路径
  • 为内部知识库问答系统集成Taotoken实现多模型备用策略
  • 2026去水印小程序哪个好用?好用的去水印小程序推荐排行榜 - 爱上科技热点
  • LinkSwift网盘直链下载助手技术实现与架构分析
  • Camunda多实例任务:从会签规则到驳回策略的实战解析
  • 5分钟掌握m4s-converter:永久保存B站缓存视频的终极方案
  • LIS2DW12中断唤醒配置实战:从原理到e2studio低功耗应用
  • topcode【随机算法题】【2026.5.18打卡-java版本】
  • 紧急预警!Springer Nature最新政策生效:Perplexity生成综述需满足3层溯源验证(附自动化校验Python工具链)