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

Drawing arc1

There are two different functions that allow drawing an arc. One of the functions is arcTo(xctrl,yctrl,xPos,yPos,radius).

You will see the second function in the next recipe. The arcTo() function accepts two coordinates and a radius. To use the arcTo() function work, it is necessary to first mark the position from where the arc is to be drawn. This is done by calling the moveTo() function, the same way as we do for drawing a line (refer to the lineTo() function).

The output of our arc recipe is as follows:

Drawing arc1

How to do it...

The recipe is as follows:

<html>
<head>
<title>Basic Arc</title>
<script>
  function init()
  {
  can = document.getElementById("MyCanvasArea");
  ctx = can.getContext("2d");

    drawArcMethod1(60,150,100,80,140,150,25,"blue");
    
    //function to draw curve by method 1
    function drawArcMethod1(xPos,yPos,xctrl,yctrl,xend,yend,radius,linecolor)
    {
      ctx.strokeStyle = linecolor;
      ctx.fillStyle="red";
      ctx.lineWidth   = 8;

      ctx.beginPath();
      ctx.moveTo(xPos,yPos);
      ctx.arcTo(xctrl,yctrl,xend,yend,radius);
      //ctx.fill();
      ctx.stroke();
    }
  }
</script>
</head>
<body onload="init()">
<canvas ID="MyCanvasArea" width="300" height="300" style="border:2px solid black;">
  your browser doesn't support canvas
</canvas>
</body>
</html>

How it works...

In our recipe, the syntax to draw the arc is as follows:

ctx.moveTo(xPos,yPos);
ctx.arcTo(xctrl,yctrl,xend,yend,radius);

On the canvas, the arc is drawn by following these steps:

  1. Move to a coordinate (xPos,yPos).
  2. Draw an imaginary line between (xPos,yPos) and the control point (xctrl,yctrl).
  3. Then draw an imaginary line between (xctrl,yctrl) and the end coordinate (xend,yend), thereby generating a cone shape.
  4. Draw an imaginary circle with the given radius between the two mentioned lines in such a way that the two lines are tangents to the circle at two different points.
  5. The arc is the path drawn between these two tangent points.

Here is a diagrammatic representation:

How it works...

The arc as shown previously will appear for the following parameters:

xPos,yPos = (60,150)
xctrl,yctrl=(100,80)
xend,yend=(140,150)
radius=15

If you increase the radius of the circle, the size will increase but it will lie within the angle formed by the two lines intersecting at the control point (xctrl,yctrl). So the circle will shift downwards, forming two tangent points, and the arc will bend. It will look as follows if the radius is increased to 25:

How it works...

There's more...

Try the following in the recipe:

  • Change the color of the arc
  • Increase the radius
  • Draw multiple arcs
主站蜘蛛池模板: 双鸭山市| 博兴县| 延吉市| 潍坊市| 甘肃省| 邻水| 都兰县| 南阳市| 永川市| 临潭县| 延寿县| 高青县| 定结县| 绥中县| 新兴县| 弥勒县| 汕头市| 罗江县| 色达县| 金川县| 汝城县| 柳林县| 满城县| 博乐市| 沙坪坝区| 泉州市| 呼玛县| 高要市| 集贤县| 梓潼县| 保德县| 遂宁市| 藁城市| 定安县| 衡水市| 武穴市| 永新县| 天峻县| 建宁县| 靖西县| 玉树县|