è¿æ¯ä¸ä¸ªé常åºç¡çWebGLè²å½©å¨ç»æ¡ä¾ï¼éè¿å®æ¶å¨æ¥éç§å¡«å ä¸åçé¢è²æ¥å®ç°ã
éè¿å¡«å å®ç°è²å½©å¨ç»æ¬æ¡ä¾ä½¿ç¨WebGLæ¥å®ç°ç®åçè²å½©å¨ç»åç¨æ·äº¤äºææï¼ç¨æ·å¯ä»¥éè¿ææé®æ¥å¼å§/æå/éæ°å¼å§å¨ç»ã
æä»¬æ WebGL 彿°æ¾å¨ä¸ä¸ªå®æ¶å¾ªç¯å¨éï¼setInterval
ï¼ãéè¿çå¬ç¹å»äºä»¶æ¥è®©ç¨æ·å¼å§/æåå¨ç»ãå¹¶éè¿å®æ¶å¨æ¥å¾ªç¯æ§è¡ç»å¶æä»¤ï¼é常æ¯é帧å¨ç»ï¼è¿æ¬¡æä»¬è®¾ç½®ä¸ºéç§å¨ç»ï¼
<p>ä¸ä¸ªè²å½©å¨ç»çç®å WebGl ç¨åº</p>
<p>ç¹å»ä¸é¢çæé®æ¥å¼/å
³å¨ç»</p>
<canvas id="canvas-view">ä½ çæµè§å¨ä¸æ¯æ Html5 canvas</canvas>
<button id="animation-onoff">
ç¹ææ¥
<strong>[verb goes here]</strong>
å¨ç»
</button>
body {
text-align: center;
}
canvas {
display: block;
width: 280px;
height: 210px;
margin: auto;
padding: 0;
border: none;
background-color: black;
}
button {
display: inline-block;
font-size: inherit;
margin: auto;
padding: 0.6em;
}
window.addEventListener(
"load",
function setupAnimation(evt) {
"use strict";
window.removeEventListener(evt.type, setupAnimation, false);
// å®ä¹ä¸ä¸ªå鿥ä¿å宿¶å¨ï¼ä»¥ææ¾å¨ç»
var timer;
// ç¹å»äºä»¶å¤çå¨
var button = document.querySelector("#animation-onoff");
var verb = document.querySelector("strong");
function startAnimation(evt) {
button.removeEventListener(evt.type, startAnimation, false);
button.addEventListener("click", stopAnimation, false);
verb.innerHTML = "æå";
//设置ä¸ä¸ªå¾ªç¯æ¥éç§æ¸²æå¨ç»
timer = setInterval(drawAnimation, 1000);
// å¨ç¨æ·ç¹å»å®ä»¥åç«å³æ§è¡ä¸æ¬¡å¨ç»
drawAnimation();
}
function stopAnimation(evt) {
button.removeEventListener(evt.type, stopAnimation, false);
button.addEventListener("click", startAnimation, false);
verb.innerHTML = "å¼å§";
// éè¿æ¸
é¤å®æ¶å¨æ¥åæ¢å¨ç»
clearInterval(timer);
}
// è°ç¨ stopAnimation() æ¥åå§åæé®çäºä»¶å¤çå¨
stopAnimation({ type: "click" });
var gl;
function drawAnimation() {
if (!gl) {
var canvas = document.getElementById("canvas-view");
gl =
canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
if (!gl) {
clearInterval(timer);
alert(
"Failed to get WebGL context.\n" +
"Your browser or device may not support WebGL.",
);
return;
}
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
}
// 使ç¨è¾
å©å½æ° å¾å°éæºé¢è²
var color = getRandomColor();
// å°éæºé¢è²è®¾ç½®å° WebGL 渲æä¸ä¸æçå¡«å
é¢è²ä¸å»
gl.clearColor(color[0], color[1], color[2], 1.0);
// ä½¿ç¨æ°è®¾ç½®çé¢è²æ¥æ¸
é¤ä¸ä¸æ
gl.clear(gl.COLOR_BUFFER_BIT);
}
//è·åéæºé¢è²çè¾
å©å½æ°
function getRandomColor() {
return [Math.random(), Math.random(), Math.random()];
}
},
false,
);
å¨ GitHub.䏿¥çæºç
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4