当前位置: 首页 > 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.jsqmd.com/news/844733/

相关文章:

  • LizzieYzy:围棋AI分析工具的三大突破,让你拥有职业棋手的复盘能力
  • 对比直接使用官方API通过聚合平台管理网站AI调用的体验
  • 推荐几家17-4Ph圆钢国内厂商:规格齐全的17-4Ph不锈钢厂商推荐 - 品牌2025
  • 基于二维码技术的设备管理系统实战 - 从架构设计到扫码盘点落地
  • MATLAB 基于多层编码遗传算法的车间调度优化
  • 紧急预警!Springer Nature最新政策生效:Perplexity生成综述需满足3层溯源验证(附自动化校验Python工具链)
  • 2026毕业季求职难?收藏这份高薪就业指南:软件测试+AI大模型助你逆袭!
  • Linux字符设备驱动框架:基于pinctrl/gpio子系统的GPIO控制实践
  • 【企业官网快速搭建】:OpenClaw 2.7.5 零代码方案(包含安装包)
  • 量子经典混合优化框架BDSW-QAOA解析与应用
  • 64 Nginx静态资源盗链的效果展示
  • topcode【随机算法题】【2026.5.18打卡-java版本】
  • 省选真题选做
  • 从OJ题解到实战:自定义字符序下的多字符串比较策略
  • FunClip:当AI视频剪辑遇上大语言模型,传统工作流程的革命性变革
  • uniapp地图组件map+nvue实战:从标点聚合到交互优化全解析
  • 如何快速部署Royal TSX完整中文汉化:终极本地化解决方案
  • 收藏必备!小白程序员快速掌握大模型核心技能:Skill详解与实战
  • 7种字重完整解决方案:思源宋体CN终极中文排版指南
  • 别再只用Leaflet了!Mapbox GL JS加载本地MVT矢量瓦片保姆级教程(附避坑点)
  • 除了‘PIN TO PIN’,选AT32F403A替代STM32F103前必须搞懂的3个关键点
  • 从SES价签到ESP32墨水屏驱动板:自制低成本电子价签全记录
  • C# 二次开发读取DimXpert尺寸与误差
  • 饭松闹钟APP隐私策略
  • 对比直接使用厂商API体验Taotoken在模型切换与路由上的便利性
  • 双连通分量
  • AI智能体落地到垂直领域需要如何学习?
  • 告别动态IP:在CentOS Stream 9虚拟环境中精准配置静态网络地址
  • 2026无锡靠谱的注册公司代办机构口碑推荐 十大代理记账、执照代办、工商代办公司权威测评优选指南 - 品牌智鉴榜
  • 数字病理分析终极指南:如何使用QuPath快速实现精准生物图像分析