让æä»¬å¼å§æè½¬æ£æ¹å½¢ãæä»¬éè¦ç第ä¸ä»¶äºæ¯å建ä¸ä¸ªåéï¼ç¨äºè·è¸ªæ£æ¹å½¢çå½åæè½¬ï¼
var squareRotation = 0.0;
ç°å¨æä»¬éè¦æ´æ°drawScene()
彿°ä»¥å¨ç»å¶æ£æ¹å½¢æ¶å°å½åæè½¬åºç¨äºæ£æ¹å½¢ã转æ¢ä¸ºæ£æ¹å½¢çåå§ç»å¾ä½ç½®åï¼æä»¬åè¿æ ·åºç¨æè½¬ï¼
mat4.rotate(
modelViewMatrix, // destination matrix
modelViewMatrix, // matrix to rotate
squareRotation, // amount to rotate in radians
[0, 0, 1],
); // axis to rotate around
è¿ä¼å° modelViewMatrix çå½åå¼squareRotation
ç» Z è½´æè½¬ã
è¦è¿è¡å¨ç»å¶ä½ï¼æä»¬éè¦æ·»å squareRotation
éæ¶é´æ´æ¹å¼ç代ç ã为æ¤ï¼æä»¬å¯ä»¥å建ä¸ä¸ªæ°å鿥è·è¸ªä¸æ¬¡å¨ç»ææ¾çæ¶é´ï¼æä»¬ç§°ä¹ä¸ºthen
ï¼ï¼ç¶åå°ä»¥ä¸ä»£ç æ·»å å°ä¸»å½æ°çæ«å°¾
var then = 0;
// Draw the scene repeatedly
function render(now) {
now *= 0.001; // convert to seconds
const deltaTime = now - then;
then = now;
drawScene(gl, programInfo, buffers, deltaTime);
requestAnimationFrame(render);
}
requestAnimationFrame(render);
该代ç ç¨äº requestAnimationFrame
è¦æ±æµè§å¨å¨æ¯ä¸å¸§ä¸è°ç¨å½æ°ârender
âãrequestAnimationFrame
èªé¡µé¢å 载以æ¥ç»è¿çæ¶é´ï¼ä»¥æ¯«ç§ä¸ºåä½ï¼ãæä»¬å°å
¶è½¬æ¢ä¸ºç§ï¼ç¶åä»ä¸åå»ï¼ä»¥è®¡ç® deltaTime
èªæ¸²ææåä¸å¸§ä»¥æ¥çç§æ°ãå¨ drawscene çç»å°¾ï¼æä»¬æ·»å äºè¦æ´æ°ç代ç squareRotation
ã
squareRotation += deltaTime;
该代ç 使ç¨èªä¸æ¬¡æä»¬æ´æ°å¼ä»¥æ¥æç»è¿çæ¶é´squareRotation
æ¥ç¡®å®æè½¬æ£æ¹å½¢çè·ç¦»ã
æ¥ç宿´ä»£ç | 卿°é¡µé¢ä¸æå¼ç¤ºä¾
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