HTML5 学习笔记15-Canvas图形绘制处理

1、图形组合

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图形组合</title>
    <script>
        function draw() {
            var canvas=document.getElementById("mycanvas");
            var context=canvas.getContext("2d");
            var options=new Array(
                    "source-atop",
                    "source-in",
                    "source-out",
                    "source-over",
                    "destination-atop",
                    "destination-in",
                    "destination-out",
                    "destination-over",
                    "lighter",
                    "copy",
                    "xor"
            );
            i=0; /*i=0,1,2.......,10分别测试效果*/
            context.fillStyle="blue";
            context.fillRect(10,10,60,60);
            context.globalCompositeOperation=options[i];
            context.beginPath();
            context.fillStyle="red";
            context.arc(60,60,30,Math.PI*2,false);
            context.fill();
        }
    </script>
</head>
<body οnlοad="draw()">
    <!--使用canvas api将一个图形重叠绘制在另一个图形上面,但推行中能看到的部分完全取决于推行的绘制顺序-->
    <canvas id="mycanvas" width="500" height="500"></canvas>
</body>
</html>

2、给图形绘制阴影

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>给图形绘制阴影</title>
    <script>
        function draw() {
            var canvas=document.getElementById("mycanvas");
            var context=canvas.getContext("2d");
            context.fillStyle="#eeeeee";
            context.fillRect(0,0,500,500);
            context.shadowOffsetX=10;
            context.shadowOffsetY=10;
            context.shadowColor="rgba(100,100,100,0.5)";
            context.shadowBlur=7.5;

            context.translate(0,50);
            for(var i=0;i<3;i++){
                context.translate(50,50);
                drawFiveStar(context);
                context.fill();
            }
        }
        function drawFiveStar(context) {
            var n=0;
            var dx=100;
            var dy=0;
            var s=50;
            context.beginPath();
            context.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++){
                var x=Math.sin(i*dig);
                var y=Math.cos(i*dig);
                context.lineTo(dx+x*s,dy+y*s);
            }
            context.closePath();
        }
    </script>
</head>
<body οnlοad="draw()">
    <!--使用canvas元素可以给图形添加阴影效果。添加时,只需利用图形上下文独享的几个关于阴影绘制的属性就可以了-->
    <!--shadowOffsetX 阴影横向位移 shadowOffsetX 阴影纵向位移 shadowColor阴影颜色 shadowBlur阴影模糊程度-->
    <canvas id="mycanvas" width="500" height="500"></canvas>
</body>
</html>

3、绘制图像

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>绘制图像</title>
    <script>
        function draw(){
            var canvas=document.getElementById("mycanvas");
            var context=canvas.getContext("2d");
            context.fillStyle="eeeeee";
            context.fillRect(0,0,500,500);
            var image=new Image();
            image.src="h2.jpg";
            image.οnlοad=function(){
                drawImage(context,image);
            }
        }
        function drawImage(context,image){
            context.drawImage(image,0,0,500,500);
        }
    </script>
</head>
<body οnlοad="draw()">
    <!--
    context.drawImage(img,x,y);
    context.drawImage(img,x,y,w,h);
    context.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh);
    -->
    <canvas id="mycanvas" width="500" height="500"></canvas>
</body>
</html>



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值