HTML5 Canvas来绘制图形

一、Canvas标签:

1、HTML55ba626b379994d53f7acf72a64f9b697元素用于图形的绘制,通过脚本(通常是javascript)来完成。

2、5ba626b379994d53f7acf72a64f9b697标签只是图形容器,必须使用脚本来绘制图形。

3、可以通过多种方法通过Canvas绘制路径、盒、圆、字符以及添加图像。

二、Canvas绘制图形

1、绘制矩形


2、绘制圆形 

 3、moveTo和lineTo

4、使用bezierCurveTo绘制贝塞尔曲线

 

5、绘制线性渐变

 

 

 6、绘制径向渐变

7、绘制变形图形

8、绘制图形合成gloablCompositeOperation属性

使用不同的 globalCompositeOperation 值绘制矩形。橙色矩形是目标图像。粉色矩形是源图像。

定义和用法

globalCompositeOperation属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上。

 源图像 = 您打算放置到画布上的绘图。

 目标图像 = 您已经放置在画布上的绘图。

属性值:

 

属性
source-atop 在先绘制的图形顶部显示后绘制的图形。后绘制的图形位于先绘制的图形之外的部分是不可见的。
source-in 只绘制相交部分,由后绘制图形的填充覆盖,其余部分透明。
source-out 只绘制后绘制图形不相交的部分,由后绘制图形的填充覆盖,其余部分透明。
source-over 在先绘制的图形上显示后绘制的图形。相交部分由后绘制的图形填充(颜色,渐变,纹理)覆盖
destination-atop 在后绘制的图形顶部显示先绘制的图形。源图像之外的目标图像部分不会被显示。
destination-in 在后绘制的图形中显示先绘制的图形。只绘制相交部分,由先绘制图形的填充覆盖,其余部分透明
destination-out 只有后绘制的图形外的目标图像部分会被显示,源图像是透明的。
destination-over  相交部分由先绘制图形的填充(颜色,渐变,纹理)覆盖.
lighter 相交部分由根据先后图形填充来增加亮度。
copy 显示后绘制的图形。只绘制后绘制图形。
xor 相交部分透明


以上效果图的代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset=utf-8>
    <title></title>
    <script src=../js/jquery-1.12.4.min.js></script>
    <script>
        $(function(){
            var options = new Array(
                    source-atop,
                    source-in,
                    source-out,
                    source-over,
                    destination-atop,
                    destination-in,
                    destination-out,
                    destination-over,
                    lighter,
                    copy,
                    xor
            );
            var str=;
            for(var i=0;i<options.length;i++){
                 str = <div id='p_+i+' style='float:left'>+options[i]+<br/>
                 <canvas id='canvas+i+' width='120px' height='100px' style='border:1px solid #ccc;margin:10px 2px 20px;'>
                 </canvas></div>;
                $(body).append(str);
                var cas = document.getElementById('canvas'+i);
                var ctx = cas.getContext('2d');
                ctx.fillStyle = orange;
                ctx.fillRect(10,10,50,50);
                ctx.globalCompositeOperation = options[i];
                ctx.beginPath();
                ctx.fillStyle = pink;
                ctx.arc(50,50,30,0,2*Math.PI);
                ctx.fill();
            }
        })
    </script>
</head>
<body></body>
</html>

图形合成

9、给图形绘制阴影

代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset=UTF-8>
    <title>canvas基础api</title>
    <style>
        canvas{
            border:1px solid #ccc;
            margin:50px;
        }
    </style>
    <script src=../js/jquery-1.12.4.min.js></script>
    <script>
        $(function(){
            //获取标签
            var cas = document.getElementById('canvas');
            //获取绘制环境
            var ctx = cas.getContext('2d');
            ctx.fillStyle =#eef;
            ctx.fillRect(0,0,300,300);
            ctx.shadowOffsetX = 10;
            ctx.shadowOffsetY = 10;
            ctx.shadowColor = rgba(100,100,100,0.5);
            ctx.shadowBlur = 7;
            for(var j=0;j<3;j++){
                ctx.translate(80,80);
                create5star(ctx);
                ctx.fill();
            }
            function create5star(ctx){
                var dx =0;
                var dy=0;
                var s=50;
                ctx.beginPath();
                ctx.fillStyle ='rgba(255,0,0,0.5)';
                var x =Math.sin(0);
                var y =Math.cos(0);
                var dig = Math.PI/5*4;
                for(var i=0;i<5;i++){
                    x=Math.sin(i*dig);
                    y=Math.cos(i*dig);
                    ctx.lineTo(dx+x*s,dy+y*s)
                }
                ctx.closePath();
                ctx.fill();
            }

        })
    </script>
</head>
<body>
    <canvas id=canvas width=300 height=300>您的浏览器不支持canvas</canvas>
</body>
</html>

五角星阴影

10、canvas使用图像

语法:ctx.drawImage(imgobj,left,top,width,height)

<!DOCTYPE html>
<html>
<head>
    <meta charset=UTF-8>
    <title>canvas基础api</title>
    <style>
        canvas{
            border:1px solid #ccc;
        }
    </style>
    <script src=../js/jquery-1.12.4.min.js></script>
    <script>
        $(function(){
            //获取标签
            var cas = document.getElementById('canvas');
            //获取绘制环境
            var ctx = cas.getContext('2d');
            //导入图片
            var img = new Image();
            img.src=../images/002.png;
            //图片加载完之后,再开始绘制图片
            img.onload = function(){
                //绘制图片ctx.drawImage(imgobj,left,top,width,height)
                ctx.drawImage(img,100,50,300,200)
            }

        })
    </script>
</head>
<body>
    <canvas id=canvas width=500 height=300>您的浏览器不支持canvas</canvas>
</body>
</html>

以上就是HTML5 Canvas来绘制图形的详细内容,更多请关注双恒网络其它相关文章!

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
9.本站默认解压密码为:www.sudo1.com
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

云资源网 » HTML5 Canvas来绘制图形

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
你们有qq群吗怎么加入?
当然有的,如果你是帝国cms、易优cms、和pbootcms系统的爱好者你可以加入我们的QQ千人交流群https://www.sudo1.com/page-qun.html。
  • 会员数(个)
  • 12334资源数(个)
  •        
  • 资源(G)
  •        
  • 今日下载
  • 1406稳定运行(天)

提供最优质的资源集合

立即查看 了解详情