您现在的位置:首页 >> 前端 >> 内容

在Canvas中,使用arcTo()方法来画一条弧线

时间:2018/5/9 14:19:52 点击:

  核心提示:在Canvas中,使用arcTo()方法来画一条弧线语法: cxt.arcTo(cx,cy,x2,y2,radius);说明:(cx,cy)表示控制点的坐标,(x2,y2)表示结束点的坐标,radiu...

在Canvas中,使用arcTo()方法来画一条弧线

语法:

 cxt.arcTo(cx,cy,x2,y2,radius);

说明:

(cx,cy)表示控制点的坐标,(x2,y2)表示结束点的坐标,radius表示圆弧的半径。如果我们想要画一条弧线,需要提供三个点的坐标:开始点、控制点和结束点。其中一般由moveTo()或lineTo()提供开始点,arcTo()提供控制点和结束点。

arcTo()方法就是利用“开始点”、“控制点”和“结束点”这三个点所形成的夹角,然后绘制一段与夹角的两边相切并且半径为radius的圆弧。其中,弧线的起点是“开始点所在边与圆的切点”,而弧线的终点是“结束点所在边与圆的切点”。

arcTo()方法绘制的弧线是两个切点之间长度最短的那个圆弧。此外,如果开始点不是弧线起点,arcTo()方法还将添加一条当前端点到弧线起点的直线线段。也就是说,开始点坐标不一定是弧线起点坐标。

例如下面一段代码:

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8" />  
    <title>arcTo()画弧线</title>  
    <script>  
        function $(id){  
            return document.getElementById(id);  
        }  
        window.onload=function(){  
            var cnv=$('canvas');  
            var cxt=cnv.getContext("2d");  
            cxt.moveTo(20,20);  
            cxt.lineTo(70,20);  
            cxt.arcTo(120,20,120,70,50);  
            cxt.lineTo(120,70);  
            cxt.stroke();  
        };  
    </script>  
</head>  
<body>  
    <canvas id="canvas" style="width:200px;height:150px;border:1px solid grey;"></canvas>  
</body>  
</html>  

浏览器的预览效果图为:

在Canvas中,使用arcTo()方法来画一条弧线

把上面的代码中的cxt.lineTo(70,20);去掉,浏览器的预览效果图为:

在Canvas中,使用arcTo()方法来画一条弧线

可以看出:如果开始点不是弧线起点时,arcTo()方法还将添加一条当前端点到弧线起点的直线线段。

Tags:在C CA AN NV 
作者:网络 来源:qq_1724201