canvas绘制阴影效果

  HTML5的Canvas自带API可以显示阴影效果,主要还是在画布(canvas)的上下文对象(context)上做文章

    <!DOCTYPE html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>HTML5 Combine Shape DEMO</title> 
    <script type="text/javascript" src="js/drawShadow.js"></script> 
    </head> 
     
    <body onload="draw('canvas')"></body> 
    <h2>canvas:显示阴影效果</h2> 
     
     
    <!-- 指定一个canvas元素用于显示结果 --> 
    <canvas id="canvas" width="400” height="400"/> 
    <br><br> 

画带阴影效果的图形见如下的js代码:

    /** 
     *  This file is confidential by Charles.Wang 
     *  Copyright belongs to Charles.wang 
     *  You can make contact with Charles.Wang (charles_wang888@126.com) 
     */ 
      
     function draw (id){ 
         
        //取得画布对象 
        var canvas = document.getElementById(id); 
        if(canvas ==null) 
        return false; 
        //取得上下文 
        var context = canvas.getContext('2d'); 
        //绘制底图 
        context.fillStyle='#FFEEFF'; 
        context.fillRect(0,0,400,400); 
         
        //以下4个属性是阴影的设置属性,用他们可以用来画阴影效果 
         
        //shadowOffSetX是横向位移量,所以这里设置为10表明阴影会出现在原图形右边,最多10像素 
        context.shadowOffSetX=10; 
        //shadowOffSetX是纵向位移量,所以这里设置为10表明阴影会出现在原图形下边,最多10像素 
        context.shadowOffsetY=10; 
        //阴影的颜色 
        context.shadowColor="rgba(50,50,100,0.5)"; 
        //阴影的模糊范围 
        context.shadowBlur=7.5; 
         
        //所以到这里为止,我们吧上下文关联上了阴影效果,所有用这个context绘制的图形都会有(+10,+10)的阴影效果 
         
        //绘制五角星 
        context.translate(50,50); 
        create5star(context); 
        context.fill(); 
     } 
      
     function create5star(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; 
         //画5条边 
         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(); 
     } 

  最终展示效果如图:

canvas绘制阴影效果

 

本文出自 “平行线的凝聚” 博客,请务必保留此出处http://supercharles888.blog.51cto.com/609344/854126

加支付宝好友偷能量挖...


评论(0)网络
阅读(173)喜欢(1)JavaScript/Ajax开发技巧