首页 前端知识 【HTML】HTML5的画布

【HTML】HTML5的画布

2024-05-10 22:05:04 前端知识 前端哥 803 104 我要收藏

目录

一、画布的定义

二、画布的使用

1.创建画布

2.获取画布

3.获取画笔

三、画直线

1.初始位置

2.连接端点

3.描边

4.线的样式

(1)宽度

 (2)颜色

(3)端点的形状

四、线的路径

1.重置路径

2. 闭合路径

五、图形填充

六、绘制圆


一、画布的定义

说到画布,其实大家并不陌生,在美术课上,我们可以用画笔在画布上绘画和涂鸦。在网页中,我们把用于绘制图形的特殊区域也称为“画布”,网页设计师可以在该区域义绘制自定的图形样式。

二、画布的使用

1.创建画布

使用HTML5中的canvas标签可以在网页中创建画布。

<canvas id="画布的名称" width="宽度" height="高度">

   
</canvas>

2.获取画布

要想在JavaScript中控制画布,首先要获取画布。使用getElementByld()方法可以获取网页中的画布对象。

var cas = document.getElementById("画布的名称")

3.获取画笔

有了画布之后,要开始绘图,还需要准备一只画笔,这支画笔就是context对象。context对象也被称为绘制环境,通过该对象,可以在画布中绘制图形。
 

var ctx = cas.getContext('2d');

三、画直线

一条最简单的线由三部分组成,分别为初始位置、连线端点以及描边。

1.初始位置

在绘制图形时,我们首先需要确定从哪里下“笔”,这个下“笔”的位置就是初始位置。

moveTo(x,y)      //把初始位置移动到(x,y)位置

2.连接端点

连线端点用于定义一个端点,并绘制一条从该端点到初始位置的连线。在画布中使用lineTo(x,y)方法来定义连线端点。

lineTo(x,y)     //终点在(x,y)位置

3.描边

通过初始位置和连线端点可以绘制一条线,但这条线并不能被看到。这时我们需要为线添加描边,让线变得可见。使用画布中的stroke)方法,可以实现线的可视效果。


stroke()

4.线的样式

(1)宽度

使用画布中的lineWidth属性可以定义线的宽度,该属性的取值为数值(不带单位),以像素为计量。

context.lineWidth='10";

 (2)颜色

使用画布中的strokeStyle属性可以定义线的描边颜色,该属性的取值为十六进制颜色值或颜色英文。


context.strokeStyle="#f00";

context.strokeStyle='red';

(3)端点的形状

默认情况下,线的端点是方形的,通过画布中的lineCap属性可以改变端点的形状。


lineCap=’属性值’

属性值显示效果
butt无形状,方形的边缘 默认值
round圆形端点
square方形端点

举例:

<body>
    <!-- 创建画布 -->
    <canvas id="cas" width="200" height="200"></canvas>
    
    <script type="text/javascript">
        //1、获取画布
        var cas = document.getElementById('cas');
        //2、获取画笔
        var ctx = cas.getContext('2d');
        //3、确定起始点
        ctx.moveTo(10,10);
        //4、确定连接端点(终点)
        ctx.lineTo(125,100);
        ctx.lineWidth = '10'; //设置线宽
        //5.描边
        ctx.strokeStyle = '#0f0'; //描边的颜色
        ctx.lineCap = 'square'; //线条端点的形状
        ctx.stroke();
    </script>
</body>

效果图:

 

四、线的路径

1.重置路径

在同一画布中,我们添加再多的连线端点也只能有一条路径,如果想要开始新的路径,就需要使用beginPath()方法,当出现beginPath()即表示路径重新开始。

举例: 

<body>
    <!-- 创建画布 -->
    <canvas id="cas" width="200" height="200"></canvas>
    
    <script type="text/javascript">
        //1、获取画布
        var cas = document.getElementById('cas');
        //2、获取画笔
        var ctx = cas.getContext('2d');
        //3、确定起始点
        ctx.moveTo(10,10);
        //4、确定连接端点(终点)
        ctx.lineTo(125,100);
        ctx.lineWidth = '10'; //设置线宽
        //5.描边
        ctx.strokeStyle = '#0f0'; //描边的颜色
        ctx.lineCap = 'square'; //线条端点的形状
        ctx.stroke();

        ctx.beginPath(); //重置路径
        ctx.moveTo(10,100);
        ctx.lineTo(100,100);
        ctx.stroke();
    </script>
</body>

 效果图:

 

2. 闭合路径

闭合路径就是将我们绘制的开放路径,进行封闭处理,多点的路径闭合后会形成特定的形状。在画布中,使用closePath()方法闭合路径。

举例:

<body>
    <!-- 创建画布 -->
    <canvas id="cas" width="200" height="200"></canvas>
    
    <script type="text/javascript">
       var cas = document.getElementById('cas');
       var ctx = cas.getContext('2d');
       ctx.moveTo(10,10);  //确定起始点
       ctx.strokeStyle = '#00f'; //设置描边颜色
       ctx.lineTo(10,150); //确定第一个端点
       ctx.lineTo(150,150);//确定第二个端点
       ctx.closePath();//闭合路径
       ctx.stroke(); //描边
    </script>
</body>

效果图:

 

五、图形填充

使用画布中的fill()方法填充图形。


fillStyle="颜色";      //设置填充色

fill();     //进行填充

举例:

<body>
    <!-- 创建画布 -->
    <canvas id="cas" width="200" height="200"></canvas>

    <script type="text/javascript">
       var cas = document.getElementById('cas');
       var ctx = cas.getContext('2d');
       ctx.moveTo(10,10);  //确定起始点
       ctx.strokeStyle = '#00f'; //设置描边颜色
       ctx.lineTo(10,150); //确定第一个端点
       ctx.lineTo(150,150);//确定第二个端点
       ctx.closePath();//闭合路径
    //    ctx.stroke(); //描边
       ctx.fillStyle = 'red'; //设置填充色
       ctx.fill();//进行填充
    </script>
</body>

效果图:

 

 

六、绘制圆

在画布中,使用arc()方法可以绘制圆或弧线。


arc(x,y,r,开始角,结束角,方向)

x和y: x和y表示圆心在x轴和y轴的坐标位置。

r:表示圆形或弧形的半径,用于确定图形的大小。
开始角:表示初始弧点位置。其中弧点使用数值"Math.PI”(圆围率,可以理解为180度)表示。——0、0.5*Math.PI、1*Math.PI、1.5*Math.PI、2*Math.PI
结束角:结束的弧点位置,初始角的设置方式一致。——0、0.5*Math.PI、1*Math.PI、1.5*Math.PI、2*Math.PI
方向:分为顺时针和逆时针绘。——true(逆时针)、false(顺时针)

 

 举例:

<body>
    <canvas id="cas" width="400" height="300">
        您的浏览器不支持画布
    </canvas>
    <script type="text/javascript">
      var ctx = document.getElementById("cas").getContext('2d');
      ctx.beginPath();//开始路径
      ctx.arc(100,100,80,0,2*Math.PI,true); //绘制圆
      ctx.closePath();//闭合路径
      ctx.fillStyle = 'green';
      ctx.fill();

      //绘制 嘴
      ctx.beginPath();
      ctx.strokeStyle = '#fff';
      ctx.lineWidth = 5;
      ctx.arc(100,120,25,Math.PI/6,5*Math.PI/6,false);
      ctx.stroke();

      //绘制 左眼
      ctx.beginPath();
      ctx.strokeStyle = '#fff';
      ctx.lineWidth = 5;
      ctx.arc(70,80,20,Math.PI/400,5*Math.PI/1,true);
      ctx.stroke();

      //绘制 右眼
      ctx.beginPath();
      ctx.strokeStyle = '#fff';
      ctx.lineWidth = 5;
      ctx.arc(130,80,20,Math.PI/400,5*Math.PI/1,true);
      ctx.stroke();

    </script>
</body>

效果图:

 

转载请注明出处或者链接地址:https://www.qianduange.cn//article/7971.html
标签
评论
发布的文章

HTML5(H5)中的Web Workers

2024-05-19 09:05:52

HTML5

2024-02-27 11:02:15

HTML5 <option> 标签

2024-05-19 09:05:51

@JsonProperty 注解详解

2024-05-19 09:05:27

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!