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

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.

主站蜘蛛池模板: 镇赉县| 洪湖市| 东乌珠穆沁旗| 咸丰县| 石家庄市| 琼结县| 建宁县| 金乡县| 中宁县| 安庆市| 灵山县| 普兰县| 隆化县| 云安县| 大厂| 分宜县| 阳山县| 中宁县| 福海县| 崇明县| 徐州市| 鲁山县| 平泉县| 崇礼县| 澎湖县| 兴城市| 邯郸县| 房山区| 鹿泉市| 会宁县| 渭南市| 永兴县| 阳信县| 奉新县| 左权县| 腾冲县| 远安县| 南雄市| 镇康县| 溧阳市| 思茅市|