官术网_书友最值得收藏!

Drawing a spiral

Caution, this recipe may induce hypnosis. In this recipe, we'll draw a spiral by connecting a series of short lines to form a spiral path.

Drawing a spiral

How to do it...

Follow these steps to draw a centered spiral:

  1. Define a 2D canvas context and initialize the spiral parameters:
    window.onload = function(){
        var canvas = document.getElementById("myCanvas");
        var context = canvas.getContext("2d");
        
        var radius = 0;
        var angle = 0;
  2. Set the spiral style:
    context.lineWidth = 10;
        context.strokeStyle = "#0096FF"; // blue-ish color
        context.beginPath();
        context.moveTo(canvas.width / 2, canvas.height / 2);
  3. Rotate about the center of the canvas three times (50 iterations per full revolution) while increasing the radius by 0.75 for each iteration and draw a line segment to the current point from the previous point with lineTo(). Finally, make the spiral visible with stroke():
    for (var n = 0; n < 150; n++) {
            radius += 0.75;
            // make a complete circle every 50 iterations
            angle += (Math.PI * 2) / 50;
            var x = canvas.width / 2 + radius * Math.cos(angle);
            var y = canvas.height / 2 + radius * Math.sin(angle);
            context.lineTo(x, y);
        }
        
        context.stroke();
    };
  4. Embed the canvas tag inside the body of the HTML document:
    <canvas id="myCanvas" width="600" height="250" style="border:1px solid black;">
    </canvas>
    

How it works...

To draw a spiral with HTML5 canvas, we can place our drawing cursor in the center of the canvas, iteratively increase the radius and angle about the center, and then draw a super short line from the previous point to the current point. Another way to think about it is to imagine yourself as a kid standing on a sidewalk with a piece of colored chalk. Bend down and put the chalk on the sidewalk, and then start turning in a circle (not too fast, though, unless you want to get dizzy and fall over). As you spin around, move the piece of chalk outward away from you. After a few revolutions, you'll have drawn a neat little spiral.

主站蜘蛛池模板: 内乡县| 东港市| 禹州市| 沁阳市| 偏关县| 南川市| 屏山县| 当阳市| 屯留县| 金乡县| 巍山| 濉溪县| 溧水县| 平凉市| 土默特右旗| 芒康县| 和政县| 许昌市| 酒泉市| 庄河市| 杭锦后旗| 徐州市| 巴林右旗| 泽州县| 大化| 永宁县| 广灵县| 顺平县| 吴桥县| 贡山| 长海县| 浙江省| 河西区| 通渭县| 信丰县| 奉化市| 武乡县| 石阡县| 临邑县| 绥滨县| 新宾|