canvas 常用的直线、矩形、圆形使用

1、新建一个html文件,写入一个canvas 标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <style type="text/css">
        #myCanvas {
            border: 1px solid #000000;
        }
    </style>
    <body>
        <canvas id="myCanvas" width="500" height="500">浏览器不支持Canvas</canvas>
    </body>
</html>

2、封装一个直线的调用的方法,方法里面都有对应的注释和效果图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var car = document.getElementById("myCanvas");
 
//直线调用  --得到的效果图如下
straightLine(0, 0, 5, 250, 250, "yellow");
//常用的直线写法   
function straightLine(startX, startY, lineW, endX, endY, color) {
    //  必须判断是否存在该方法,即判断浏览器是否支持canvas
    if (car.getContext) {
 
        var ctx = car.getContext("2d");
        //开始
        ctx.beginPath();
 
        //设置线的宽度
        ctx.lineWidth = lineW;
 
        // 起始点 x,y
        ctx.moveTo(startX, startY);
 
        //终点 x,y
        ctx.lineTo(endX, endY);
 
        //自定义颜色
        ctx.strokeStyle = color;
        //没写默认颜色为黑色
        ctx.stroke();
 
        //结束(不关闭的话会和开始的地方直接相接)
        ctx.closePath();
    }
}

 

3、封装一个矩形的调用方法,方法里面都有对应的注释和效果图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    var car = document.getElementById("myCanvas");
     //矩形调用
 rectangle(200, 200, 100, 100, 0, "yellow", 5);
 //常用矩形的写法
 function rectangle(startX, startY, Width, Height, reatState, color, lineW) {
    var ctx = car.getContext("2d");
    //开始
    ctx.beginPath();
 
    //自定义颜色
    ctx.strokeStyle = color;
 
    //设置线的宽度
    ctx.lineWidth = lineW;
 
    //根据状态值判断是否需要填充矩形(0:不需要,1:需要)
    if (reatState == 0) {
        //参数作用:x的起始坐标,y的起始坐标,x的宽度值,y的高度值
        // ctx.rect(startX,startY,Width,Height);
 
        //参数作用:x的起始坐标,y的起始坐标,x的宽度值,y的高度值
        ctx.strokeRect(startX, startY, Width, Height);
    } else if (reatState == 1) {
 
        //设置填充的颜色 (注意:填充的颜色必须在fillReact方法之前,不然不生效)
        ctx.fillStyle = "green";
 
        //被填充的矩形,参数作用:x的起始坐标,y的起始坐标,x的宽度值,y的高度值
        ctx.fillRect(startX, startY, Width, Height);
 
        //在某些情况下可能需要把填充的一部分内容清除掉,这个时候可以用clearRect()
        //对应的参数作用依然相同:x的起始坐标,y的起始坐标,要清除的宽度值,要清除的高度值
        ctx.clearRect(220, 220, 50, 50);
    }
 
    ctx.stroke();
    //结束
    ctx.closePath();
}       

  

 

4、封装一个圆形的调用方法,方法里面都有对应的注释和效果图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    var car = document.getElementById("myCanvas");
    //圆形调用
circular(250,250,50,0,2,false);
//常用圆形的写法
function circular(x,y,r,startRote,endRote,state){
    var ctx = car.getContext("2d");
    ctx.beginPath();
     
 
    //一个圆的实现
    //参数:圆的中心点X坐标,圆的中心点Y坐标,圆的半径,圆的起始角,圆的结束角,方向(false顺时针,true逆时针)
    ctx.arc(x,y,r,startRote,Math.PI*endRote,state);
     
    //有时候我们不需要一个完整的圆,需要半圆或者四分之一的圆,而且还是可以指定位置的时候
     
    //得到一个从0度到180度的半圆
    // ctx.arc(250, 250, 50,0, Math.PI * 1, false);
     
    //得到一个从0度到90度的四分之一圆
    // ctx.arc(250, 250, 100, 0, 0.5 * Math.PI, false);
     
    //没写默认颜色为黑色
    ctx.stroke();
    ctx.closePath();
}       

  

 

 

 

posted @   凌晨的粥  阅读(180)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示