-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
134 changed files
with
5,903 additions
and
107 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title>模型框架--音乐版</title> | ||
<script src="dist/echarts.js"></script> | ||
<script type="text/javascript" src="dist/echarts-gl.min.js"></script> | ||
<style> | ||
html{ | ||
height: 100%; | ||
} | ||
body{ | ||
height: 100%; | ||
} | ||
#main{ | ||
width: 100%; | ||
height: 100%; | ||
background-color: #111111; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<div id="main"></div> | ||
<script> | ||
var main =document.getElementById("main"); | ||
var myChart = echarts.init(main);//直接写在里面会无法找到dom的宽和高 | ||
var UPDATE_DURATION = 100; | ||
|
||
window.AudioContext = window.AudioContext || window.webkitAudioContext; | ||
|
||
var audioContext = new AudioContext(); | ||
|
||
var oReq = new XMLHttpRequest(); | ||
oReq.open('GET', '全职高手.mp3', true); | ||
oReq.responseType = 'arraybuffer';// XMLHttpRequest 2的新东西 | ||
|
||
oReq.onload = function(e) { | ||
|
||
// 音频数据在oReq.response中,而不是request.requestText | ||
audioContext.decodeAudioData(oReq.response, initVisualizer); | ||
}; | ||
oReq.send(); | ||
|
||
function initVisualizer(audioBuffer) { | ||
inited = true; | ||
// create source node | ||
var source = audioContext.createBufferSource(); | ||
source.buffer = audioBuffer; | ||
|
||
// Must invoked right after click event | ||
if (source.noteOn) { | ||
source.noteOn(0); | ||
} | ||
else { | ||
source.start(0);//0是当前audio context中的同步时间,要求立即开始 | ||
} | ||
|
||
var analyzer = audioContext.createAnalyser(); | ||
var gainNode = audioContext.createGain();// create gain node | ||
analyzer.fftSize = 4096; | ||
|
||
gainNode.gain.value = 1; | ||
source.connect(gainNode); | ||
gainNode.connect(analyzer); | ||
analyzer.connect(audioContext.destination); | ||
|
||
var frequencyBinCount = analyzer.frequencyBinCount; | ||
var dataArray = new Uint8Array(frequencyBinCount); | ||
|
||
|
||
var beta = 0; | ||
function update() { | ||
analyzer.getByteFrequencyData(dataArray); | ||
|
||
var item = []; | ||
var size = 50; | ||
var dataProvider = []; | ||
|
||
for (var i = 0; i < size * size; i++) { | ||
var x = i % size; | ||
var y = Math.floor(i / size); | ||
var dx = x - size / 2; | ||
var dy = y - size / 2; | ||
|
||
var angle = Math.atan2(dy, dx); | ||
if (angle < 0) { | ||
angle = Math.PI * 2 + angle; | ||
} | ||
var dist = Math.sqrt(dx * dx + dy * dy); | ||
var idx = Math.min( | ||
frequencyBinCount - 1, Math.round(angle / Math.PI / 2 * 60 + dist * 60) + 100 | ||
); | ||
|
||
var val = Math.pow(dataArray[idx] / 100, 3); | ||
dataProvider.push([x, y, Math.max(val, 0.1)]); | ||
} | ||
|
||
myChart.setOption({ | ||
grid3D: { | ||
viewControl: { | ||
beta: beta, | ||
alpha: Math.sin(beta / 10 + 40) * (beta % 10 + 5) / 15 * 30 + 30, | ||
distance: Math.cos(beta / 50 + 20) * (beta % 10 + 5) / 15 * 50 + 80, | ||
animationDurationUpdate: UPDATE_DURATION, | ||
animationEasingUpdate: 'linear' | ||
} | ||
}, | ||
series: [{ | ||
data: dataProvider | ||
}] | ||
}); | ||
beta += 2; | ||
|
||
setTimeout(update, UPDATE_DURATION); | ||
}; | ||
|
||
update(); | ||
} | ||
|
||
option = { | ||
tooltip: {}, | ||
visualMap: { | ||
show: false, | ||
min: 0.1, | ||
max: 4, | ||
inRange: { | ||
color: ['#010103', '#2f490c', '#b0b70f', '#fdff44', '#fff'] | ||
} | ||
}, | ||
xAxis3D: { | ||
type: 'value' | ||
}, | ||
yAxis3D: { | ||
type: 'value' | ||
}, | ||
zAxis3D: { | ||
type: 'value', | ||
min: -6, | ||
max: 6 | ||
}, | ||
grid3D: { | ||
show: false, | ||
environment: '#000', | ||
viewControl: { | ||
distance: 100 | ||
}, | ||
postEffect: { | ||
enable: true, | ||
FXAA: { | ||
enable: true | ||
} | ||
}, | ||
light: { | ||
main: { | ||
shadow: true, | ||
intensity: 10, | ||
quality: 'high' | ||
}, | ||
ambientCubemap: { | ||
texture: 'Image/miranda_uncropped.hdr', | ||
exposure: 0, | ||
diffuseIntensity: 0.2 | ||
} | ||
} | ||
}, | ||
series: [{ | ||
type: 'bar3D', | ||
silent: true, | ||
shading: 'lambert', | ||
data: [], | ||
barSize: 1, | ||
lineStyle: { | ||
width: 4 | ||
}, | ||
// animation: false, | ||
animationDurationUpdate: UPDATE_DURATION | ||
}] | ||
} | ||
myChart.setOption(option); | ||
</script> | ||
|
||
</body> | ||
</html> |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
|
||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title></title> | ||
<script src="dist/echarts.js"></script> | ||
<script type="text/javascript" src="dist/echarts-gl.min.js"></script> | ||
<script type="text/javascript" src="dist/simplex-noise.js"></script> | ||
<style> | ||
html{ | ||
height: 100%; | ||
} | ||
body{ | ||
height: 100%; | ||
} | ||
#main{ | ||
width: 100%; | ||
height: 80%; | ||
background-color: #111111; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<div id="main"></div> | ||
<script> | ||
var main =document.getElementById("main"); | ||
var myChart = echarts.init(main);//如果出现错误,就用localhost | ||
|
||
function generateData() { | ||
var data = []; | ||
var noise = new SimplexNoise(Math.random); | ||
for (var i = 0; i <= 10; i++) { | ||
for (var j = 0; j <= 10; j++) { | ||
var value = noise.noise2D(i / 5, j / 5); | ||
data.push([i, j, value * 2 + 4]); | ||
} | ||
} | ||
return data; | ||
} | ||
|
||
var series = []; | ||
for (var i = 0; i < 10; i++) { | ||
series.push({ | ||
type: 'bar3D', | ||
data: generateData(), | ||
stack: 'stack', | ||
shading: 'lambert', | ||
emphasis: { | ||
label: { | ||
show: false | ||
} | ||
} | ||
}); | ||
} | ||
|
||
option = { | ||
xAxis3D: { | ||
type: 'value' | ||
}, | ||
yAxis3D: { | ||
type: 'value' | ||
}, | ||
zAxis3D: { | ||
type: 'value' | ||
}, | ||
grid3D: { | ||
viewControl: { | ||
// autoRotate: true | ||
}, | ||
light: { | ||
main: { | ||
shadow: true, | ||
quality: 'ultra', | ||
intensity: 1.5 | ||
} | ||
} | ||
}, | ||
series: series | ||
} | ||
myChart.setOption(option); | ||
|
||
</script> | ||
</body> | ||
</html> |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.