美文网首页
canvas实现简单的科赫雪花

canvas实现简单的科赫雪花

作者: 最帅的坏兔子 | 来源:发表于2019-03-21 00:05 被阅读0次

<!DOCTYPE html>

<html>

<head>

<title>科赫雪花</title>

</head>

<body>

<canvas id="snow"></canvas>

<script type="text/javascript">

(function(){

var canvas = document.getElementById("snow");

canvas.width = 750;

canvas.height = 200;

var c = canvas.getContext("2d");

var deg = Math.PI/180;

c.beginPath();

function snowFlake(c, n, x, y, len){

c.save();

c.translate(x,y);

c.moveTo(0,0);

leg(n);

c.rotate(-120*deg);

leg(n);

c.rotate(-120*deg);

leg(n);

c.closePath();

c.restore();

function leg(n){

c.save();

if(n === 0){

c.lineTo(len, 0);

}else{

c.scale(1/3,1/3);

leg(n-1);

c.rotate(60*deg);

leg(n-1);

c.rotate(-120*deg);

leg(n-1);

c.rotate(60*deg);

leg(n-1);

}

c.restore();

c.translate(len, 0);

}

}

snowFlake(c, 0, 5, 115, 125);    // 0级雪花是三角形

snowFlake(c, 1, 145, 115, 125);  //1级雪花是六角形

snowFlake(c, 2, 285, 115, 125);

snowFlake(c, 3, 425, 115, 125);

snowFlake(c, 4, 565, 115, 125);  //4级雪花看起来就像一朵真雪花了

c.stroke();

})();

</script>

</body>

</html>

效果图:

科赫雪花

相关文章

网友评论

      本文标题:canvas实现简单的科赫雪花

      本文链接:https://www.haomeiwen.com/subject/amffvqtx.html