이 트리를 캔버스에 그렸으며 이제 애니메이션을 애니메이트하고 크기가 커지는 것처럼 보이게하려고합니다. 나는 모든 입력과 아이디어에 만족할 것입니다 그래서 애니메이션 초급입니다! 또한 나무는 매번 다르게 자라기도하고 가능하다면 똑같이 보이지도 않습니다. 감사합니다.HTML5 캔버스에서 트리를 움직이는 방법
<!DOCTYPE html>
<html lang="en">
<head>
<title>tree</title>
</head>
<body onload="init();">
<canvas id="canvas" width="1200" height="600" ></canvas>
<script type="text/javascript" >
init = function() {
var x1 = 400;
var y1 = 300;
var x2 = 400;
var y2 = 200;
var angle = 0.1 * Math.PI;
var depth = 6;
drawTree(x1, y1, x2, y2, angle, depth);
}
drawTree = function(x1, y1, x2, y2, angle, depth){
var context = document.getElementById('canvas').getContext('2d');
context.strokeStyle = 'rgb(0, 0, 0)';
context.lineWidth = depth;
context.beginPath();
context.moveTo(x1, y1);
context.lineTo(x2, y2);
context.stroke();
if(depth > 0){
var x = x2 - x1;
var y = y2 - y1;
var scale = 0.5 + Math.random() * 0.5;
x *= scale;
y *= scale;
var xLeft = x * Math.cos(-angle) - y * Math.sin(-angle);
var yLeft = x * Math.sin(-angle) + y * Math.cos(-angle);
var xRight = x * Math.cos(+angle) - y * Math.sin(+angle);
var yRight = x * Math.sin(+angle) + y * Math.cos(+angle);
xLeft += x2;
yLeft += y2;
xRight += x2;
yRight += y2;
drawTree(x2, y2, xLeft, yLeft, angle, depth - 1);
drawTree(x2, y2, xRight, yRight, angle, depth - 1);
}
}
</script>
</body>
</html>
http://d3js.org/ – mccainz
슈퍼 순진 방법 당신의 무승부를 호출 던져하는 것 [' setTimeout()'] (http://jsfiddle.net/brbcoding/tkuwc5zg/) (그러나 이것은 느린 속도에서 끔찍한 것처럼 보입니다). 각 '지점'의 시작점과 끝점을 잡고 해당 시작점과 끝점 ('requestAnimationFrame' 등을 사용하여 일부 그리기 루프 내부)의 중간 지점에서 캔버스를 다시 그리기를 원할 것입니다. – brbcoding
다음은 무슨 뜻입니까? - http://jsfiddle.net/brbcoding/2ym5710m/ – brbcoding