1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| function initRotSquare() { var canvas = document.getElementById("rot-canvas"); var gl = canvas.getContext("webgl2");
if (!gl) { alert("WebGL isn't available"); }
gl.viewport(0, 0, canvas.width, canvas.height); gl.clearColor(1.0, 1.0, 1.0, 1.0);
var program = initShaders(gl, "rot-v-shader", "rot-f-shader"); gl.useProgram(program);
var vertices = new Float32Array([ 0, 1, 0, -1, 0, 0, 1, 0, 0, 0, -1, 0 ]);
var bufferId = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, bufferId); gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
var vPosition = gl.getAttribLocation(program, "vPosition"); gl.vertexAttribPointer(vPosition, 3, gl.FLOAT, false, 0, 0); gl.enableVertexAttribArray(vPosition);
var thetaLoc = gl.getUniformLocation(program, "theta");
function renderSquare() { gl.clear(gl.COLOR_BUFFER_BIT);
var theta = performance.now() / 1000; gl.uniform1f(thetaLoc, theta);
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
requestAnimationFrame(renderSquare); }
renderSquare(); }
function moveCanvas() { var xPos = parseFloat(document.getElementById("xPos").value); var yPos = parseFloat(document.getElementById("yPos").value);
var canvas = document.getElementById("rot-canvas"); canvas.style.position = "absolute"; canvas.style.transform = `translate(${xPos}px, ${yPos}px)`; }
|