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

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.

主站蜘蛛池模板: 桂阳县| 和田县| 亳州市| 遵义县| 安陆市| 女性| 玉门市| 林甸县| 黔江区| 栾城县| 开封市| 苗栗县| 深圳市| 台北县| 洛宁县| 昌都县| 镶黄旗| 梅州市| 延庆县| 浙江省| 齐河县| 若尔盖县| 子洲县| 抚顺县| 茌平县| 南通市| 吉安市| 常山县| 榆社县| 通榆县| 石家庄市| 进贤县| 昌邑市| 太湖县| 宁远县| 射洪县| 嘉义市| 化州市| 定日县| 合阳县| 绥江县|