html5初学4

来源:互联网 发布:sql select语句 例题 编辑:程序博客网 时间:2024/06/07 10:32
今天主要学习一下html5里的canvas。
它的主要特点是: Canvas画布是一个矩形区域,可以控制其每一个像素;Canvas使用JavaScript来控制画图; Canvas具有直线、矩形、圆以及添加图像的方法。
先来一个简单的例子。画一个蓝色正方形
<!Doctype html>
<html>
<head>看看canvas</title>
<meta charset="utf-8"/>
</head>

<body>
<canvas id="myCanvas" width="100" height="100"></canvas>
<script type="text/javascript">
    var c=document.getElementById("myCanvas");
    var cxt=c.getContext("2d");
    cxt.fillStyle="#0000FF";
    cxt.fillRect(0,0,200,200);
</script>
</body>

</html>
注解:canvas定义id是便于JavaScript绘图时获取该标签对象,fillStyle是填充颜色,fillRect指定填充的区域。

同理画直线也是如此,script里这样写即可
<script type="text/javascript">
    var c=document.getElementById("myCanvas");
    var cxt=c.getContext("2d");
    cxt.moveTo(10,10);
    cxt.lineTo(150,50);
    cxt.lineTo(10,50);
    cxt.stroke();
</script>

画圆的时候script里
<script type="text/javascript">
    var c=document.getElementById("myCanvas");
    var cxt=c.getContext("2d");
    cxt.fillStyle="#FF0000";
    cxt.beginPath();
    cxt.arc(70,18,15,0,Math.PI*2,true);
    cxt.closePath();
    cxt.fill();
</script>

填充图片的时候
<script type="text/javascript">
    var c=document.getElementById("myCanvas");
    var cxt=c.getContext("2d");
    var img=new Image();
    img.src="C://Users//13693//Desktop//picture//1.jpeg";
    img.onload=function(e){
        cxt.drawImage(img,0,0);
    }
    cxt.drawImage(img,0,0);
</script>    
ps:img.src后面对应的路径是本地绝对路径
方法都很类似。

以下介绍一些canvas的相关属性和用法。

1.颜色、样式和阴影
    属性    描述
    fillStyle    设置或返回用于填充绘画的颜色、渐变或模式
    strokeStyle    设置或返回用于笔触的颜色、渐变或模式
    shadowColor    设置或返回用于阴影的颜色
    shadowBlur    设置或返回用于阴影的模糊级别
    shadowOffsetX    设置或返回阴影距形状的水平距离
    shadowOffsetY    设置或返回阴影距形状的垂直距离

    方法    描述
    createLinearGradient()    创建线性渐变(用在画布内容上)
    createPattern()    在指定的方向上重复指定的元素
    createRadialGradient()    创建放射状/环形的渐变(用在画布内容上)
    addColorStop()    规定渐变对象中的颜色和停止位置

2.线条样式
    属性    描述
    lineCap    设置或返回线条的结束端点样式
    lineJoin    设置或返回两条线相交时,所创建的拐角类型
    lineWidth    设置或返回当前的线条宽度
    miterLimit    设置或返回最大斜接长度

3.路径
    方法    描述
    fill()    填充当前绘图(路径)
    stroke()    绘制已定义的路径
    beginPath()    起始一条路径,或重置当前路径
    moveTo()    把路径移动到画布中的指定点,不创建线条
    closePath()    创建从当前点回到起始点的路径
    lineTo()    添加一个新点,然后在画布中创建从该点到最后指定点的线条
    clip()    从原始画布剪切任意形状和尺寸的区域
    quadraticCurveTo()    创建二次贝塞尔曲线
    bezierCurveTo()    创建三次方贝塞尔曲线
    arc()    创建弧/曲线(用于创建圆形或部分圆)
    arcTo()    创建两切线之间的弧/曲线
    isPointInPath()    如果指定的点位于当前路径中,则返回 true,否则返回 false

4.转换
    方法    描述
    scale()    缩放当前绘图至更大或更小
    rotate()    旋转当前绘图
    translate()    重新映射画布上的 (0,0) 位置
    transform()    替换绘图的当前转换矩阵
    setTransform()    将当前转换重置为单位矩阵。然后运行 transform()

5.图像绘制
    方法    描述
    drawImage()    向画布上绘制图像、画布或视频

6.其他方法
    方法    描述
    save()    保存当前环境的状态
    restore()    返回之前保存过的路径状态和属性
    createEvent()    
    getContext()    获得用于在画布上绘图的对象
    toDataURL()    导出在canvas元素上绘制的图像