HTML5绘制图形

本文详细介绍了如何使用HTML5 canvas在网页上绘制图形,包括添加canvas元素、绘制基本形状(如矩形、圆形和直线)、创建渐变效果(线性与径向)、图形变换、组合与阴影应用。深入浅出地展示了JavaScript与canvas的强大结合。
摘要由CSDN通过智能技术生成

canvas概述

  1. 添加canvas元素
    < canvas>标记是一个矩形区域,包含两个属性width和height。
    在网页中常用的形式如下:
<canvas id="myCanvas" width="300" height="200" style="border:1px solid #c3c3c3;">
..........
</canvas>

注意:画布canvas本身不具有画图功能,只是一个容器。
使用canvas和JavaScript绘制图形,步骤如下:
第一步:JavaScript使用id来寻找canvas元素,即获取当前画布对象。

var c=document.getElementById("myCanvas");

第二步:创建context文件

var cxt=c.getContext("2d");

第三步:绘制图形。
2. 绘制矩形
绘制函数如下表:
在这里插入图片描述

绘制基本形状

  1. 绘制圆形。绘制函数如下表:
    在这里插入图片描述
  2. 使用moveTo与lineTo绘制直线
    绘制直线的函数通常是moveTo和lineTo,其含义如下表:
    在这里插入图片描述

绘制渐变图形

渐变是两种或者更多颜色的平滑过渡,是指在颜色集上使用逐步抽样算法,并将结果应用于扫边样式和填充样式中。两种类型的渐变:线性渐变和放射性渐变(径向渐变)。

  1. 绘制线性渐变:步骤:
    第一步:创建渐变对象。
var gradient = cxt.createLinearGradient(0,0,0,canvas.height);

第二步:为渐变对象设置颜色,指明过渡过程。

gradient.addColorStop(0,'#fff');
gradient.addColorStop(1,'#000');

第三步:在context上为填充样式或描边样式设置渐变。

cxt.fillStyle=gradient;

绘制函数如下表:
在这里插入图片描述
2. 绘制径向渐变
所谓放射性渐变就是颜色会介于两个指定圆间的锥形区域平滑变化。放射性渐变和线性渐变使用的颜色终点是一样的。如果要实现放射性渐变,即径向渐变,需要使用函数createRadialGradient。

绘制变形图形

  1. 变换原点坐标
    平移(translate)即将绘图区相当于当前画布的左上角进行平移。如果不进行平移,则绘图区原点和画布原点是重叠的,绘图区相当于画图软件里的热区或当前区;如果进行变形,则坐标位置会移动到一个新的位置。
    使用函数是translate(x,y)。假设原来在(100,100),然后translate(1,1),新的坐标原点在(101,101)。
  2. 图形的缩放。
    需要使用scale(x,y)函数,该函数带有两个参数,分别代表在x,y两个方向上的值,每个参数对应的值就是放大或者缩小的倍数。
  3. 旋转图形
    使用函数context.rotate(angle)来旋转图形。参数是以弧度为单位。rorate()函数默认的从左上端的(0,0)开始旋转,通过制定一个角度,改变画布坐标和web浏览器中的< canvas>元素像素之间的映射,使得任意后续绘图在画布中都显示为旋转,他并没有旋转< canvas> 元素本身。注意,这个角度使用弧度指定的。

图形组合

利用globalComposieOperation属性来改变这些做法,不仅可以在已有的图形后面再画新的图形,还可以用来遮盖,清除某些区域。语法格式如下:

globalCompositeOpration = type;

属性type的含义如下表:

在这里插入图片描述

绘制带阴影的图形

在画布canvas上绘制带有阴影效果的图形非常简单,只需要设置几个属性即可。这几个属性分别shadowOffsetX,shadowOffsetY(这两个表示阴影x,y偏移量,单位像素),shadowBlur(阴影模糊程度)和shadowColor(阴影颜色)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值