Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function drawScene() {
- var segments = [];
- for (var j = 0; j < segmentsCounter; j++) {
- segments.push({
- x:0,
- y:0
- })
- }
- gl.viewport(0, 0, gl.viewportWidth, gl.viewportHeight);
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
- mat4.perspective(45, aRatio, 0.1, 100, pMatrix);
- setupLight();
- mat4.identity(mvMatrix);
- mat4.translate(mvMatrix, [moveX, moveY, -posZ]);
- mat4.rotate(mvMatrix, degToRad(angle), [0, 0, 1]);
- segments[0].x = mvMatrix[12];
- segments[0].y = mvMatrix[13];
- openglDraw();
- var moveBy = 0.002;
- mat4.scale(mvMatrix, [0.9, 0.9, .9]);
- for (var j = 1; j < segmentsCounter; j++) {
- var distToParent = getLen(segments[j-1], segments[j]);
- if (distToParent > moveBy) {
- var tooFar = distToParent - moveBy;
- var dx = (segments[j - 1].x - segments[j].x) / distToParent;
- var dy = (segments[j - 1].y - segments[j].y) / distToParent;
- mat4.translate(mvMatrix, [-dx * 0.6, -dy * 0.6 , 0]);
- segments[j].x = mvMatrix[12];
- segments[j].y = mvMatrix[13];
- }
- openglDraw();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement