<script>
// não necessário saber agora
getSenCos = function(angulo)
{
angulo = manterLimites(angulo);
seno = Math.sin(angulo * Math.PI / 180);
cose = Math.cos(angulo * Math.PI / 180);
return [cose, seno];
}
// não necessário saber agora
manterLimites = function(angulo)
{
while(angulo>=360)
{
angulo=angulo-360;
}
while(angulo<0)
{
angulo=angulo+360;
}
return angulo;
}
// função galho recebe a posição inicial da reta em x1, y1.
galho = function(ctx, x1, y1, tamanho, angulo, poda)
{
//coloco a proxima semente de acordo com o giro e o novo tamanho
var senCos= getSenCos(angulo)
var novox = x1+tamanho*senCos[0]
var novoy = y1+tamanho*senCos[1]
ctx.lineWidth = 2;
ctx.beginPath();
ctx.strokeStyle="#FF0000";
ctx.moveTo(x1,y1); // inicio linha
ctx.lineTo(novox,novoy); // fim linha
// desenha linha
ctx.stroke();
// impede loop infinito
if( poda>1 )
{
// a função chama a sí mesma
galho(ctx, novox, novoy, tamanho*0.9, angulo-30,poda-1 )
}
}
load = function()
{
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
galho(ctx, 80, 80, 100, 125, 16);
}
</script>
<canvas id="myCanvas" width="400" height="400" style="border:1px solid #000000;">
</canvas>
<script>load();</script>
Resultado:
Nenhum comentário:
Postar um comentário