JavaScript 生成音波数据用于 ECharts 图表
以下是生成三组高低起伏的音波数组的示例代码:
// 生成高低起伏的音波数组
function generateWaveData(numPoints, amplitude, frequency, phase) {
var waveData = [];
var increment = (Math.PI * 2 * frequency) / numPoints;
for (var i = 0; i < numPoints; i++) {
var value = amplitude * Math.sin(i * increment + phase);
waveData.push(value);
}
return waveData;
}
// 生成三组音波数组
var numPoints = 100; // 数据点数
var amplitude1 = 50; // 第一组音波的振幅
var amplitude2 = 30; // 第二组音波的振幅
var amplitude3 = 20; // 第三组音波的振幅
var frequency1 = 2; // 第一组音波的频率
var frequency2 = 3; // 第二组音波的频率
var frequency3 = 4; // 第三组音波的频率
var phase1 = 0; // 第一组音波的相位
var phase2 = Math.PI / 2; // 第二组音波的相位
var phase3 = Math.PI; // 第三组音波的相位
var xAxis = []; // x轴数据
var yAxis1 = []; // 第一组音波的y轴数据
var yAxis2 = []; // 第二组音波的y轴数据
var yAxis3 = []; // 第三组音波的y轴数据
for (var i = 0; i < numPoints; i++) {
xAxis.push(i);
yAxis1.push(amplitude1 + generateWaveData(numPoints, amplitude1, frequency1, phase1)[i]);
yAxis2.push(50 + amplitude2 + generateWaveData(numPoints, amplitude2, frequency2, phase2)[i]);
yAxis3.push(70 + amplitude3 + generateWaveData(numPoints, amplitude3, frequency3, phase3)[i]);
}
console.log(xAxis); // x轴数据
console.log(yAxis1); // 第一组音波的y轴数据
console.log(yAxis2); // 第二组音波的y轴数据
console.log(yAxis3); // 第三组音波的y轴数据
请注意,以上代码中的xAxis数组是从0到99的递增整数,yAxis1、yAxis2和yAxis3是根据不同的振幅、频率和相位生成的音波数组。你可以将这些数组传递给ECharts的相关配置项,以绘制相应的音波图表。
原文地址: https://www.cveoy.top/t/topic/rZ2 著作权归作者所有。请勿转载和采集!