`
128kj
  • 浏览: 600306 次
  • 来自: ...
社区版块
存档分类
最新评论

HTML5 Canvas 圆弧动画(绕四周运动)

阅读更多
点击这里可以看到动画效果:
http://www.108js.com/article/article7/src/70206/Arcs1.html

欢迎访问博主的网站:http://www.108js.com
效果图:


代码:
<!DOCTYPE html>
<html><head><meta charset="gbk">
<title>HTML5 Canvas画圆</title>
</head>
<body>
  <canvas id="canvas" width="400" height="400" style="border:2px solid blue;"></canvas>
<script>
var canvas = document.getElementById("canvas");  
   var context = canvas.getContext('2d');  
    var types = ["Arc2D.OPEN","Arc2D.CHORD","Arc2D.PIE"];
    var  CLOSE    = 0;
    var  OPEN     = 1;

    var  FORWARD  = 0;
    var  BACKWARD = 1;
    var  DOWN     = 2;
    var  UP       = 3;

    var aw=20;
    var  ah=20; // animated arc width & height
    var x=30;
    var y=30;
    var angleStart = 45;
    var angleExtent = 270;
    var mouth = CLOSE;
    var direction = FORWARD;



    function step(w, h) {
      // Compute direction
        if (x+aw >= w-5 && direction == FORWARD ) direction = DOWN;
        if (y+ah >= h-5 && direction == DOWN    ) direction = BACKWARD;
        if (x-aw <=   5 && direction == BACKWARD) direction = UP;
        if (y-ah <=   5 && direction == UP      ) direction = FORWARD;

      // compute angle start & extent
        if (mouth == CLOSE) {
            angleStart -= 5;
            angleExtent += 10;
        }
        if (mouth == OPEN) {
            angleStart += 5;
            angleExtent -= 10;
        }
        if (direction == FORWARD) {
            x += 5; y = 30;
        }
        if (direction == DOWN) {
            x = w-30; y += 5;
        }
        if (direction == BACKWARD) {
            x -= 5; y = h-30;
        }
        if (direction == UP) {
            x = 30; y -= 5;
        }
        if (angleStart == 0)
            mouth = OPEN;
        if (angleStart > 45)
            mouth = CLOSE;
    }

 var canvas = document.getElementById("canvas");  
   var context = canvas.getContext('2d');  
    var types = ["Arc.OPEN","Arc.CHORD","Arc.PIE"];
   

     function render(w, h,context) {

      // Draw Arcs
       context.lineWidth=5;
       for (var i = 0; i < types.length; i++) {

           context.lineWidth=5;
           context.strokeStyle="blue";
           context.beginPath();
           context.arc((i+1)*w/4,(i+1)*h/4, w/10, Math.PI/4,3*Math.PI/2,false)
          
           if(i==1) context.closePath();
            
           if(i==2) {
              context.lineTo((i+1)*w/4,(i+1)*h/4)
              context.closePath();
            
           }
          context.stroke();
          context.fillStyle="gray";
          context.fill();
        }
        context.save();
        context.translate(x,y);
         switch (direction) {
            case DOWN     : context.rotate(Math.PI/2); break;
            case BACKWARD : context.rotate(Math.PI); break;
            case UP       : context.rotate(3*Math.PI/2);
        }

        context.beginPath();
        //alert(y+"--"+angleStart);

        context.arc(0,0,20,angleStart*Math.PI/180,angleExtent*Math.PI/180,false);
        context.lineTo(0,0)
        context.closePath();
        context.fillStyle="blue";
        context.fill();
        context.restore();


    }
      var loop = setInterval(function () { 
       context.clearRect(0, 0, canvas.width, canvas.height); 
       render(400, 400, context);
       step(400,400);
    }, 50); 

   // render(400,400,context);
  

</script><body></html>

热情奉献:HTML5 Canvas绘图与动画学习59例源码:
http://www.108js.com/example.html
  • 大小: 5.3 KB
0
0
分享到:
评论

相关推荐

    html5 canvas碎片3D环绕地球天体运动动画特效

    在这个特定的案例中,“html5 canvas碎片3D环绕地球天体运动动画特效”是一个利用Canvas API实现的3D视觉效果,模拟了天体(如行星)在三维空间中围绕地球的运动轨迹。 首先,我们要理解Canvas的基本概念。HTML5 ...

    html5 canvas碎片3D环绕地球天体运动动画特效.zip

    在这个“html5 canvas碎片3D环绕地球天体运动动画特效”项目中,我们主要会探讨以下几个核心知识点: 1. **HTML5 Canvas API**:Canvas是一个基于矢量图形的HTML元素,通过JavaScript来控制其绘图行为。开发者可以...

    HTML5 Canvas绕月球动画特效.zip

    这个"HTML5 Canvas绕月球动画特效"利用了Canvas的API,为用户提供了独特的视觉体验,展示了一个卡通月球旋转的动画效果。在JS特效-其它代码的标签下,我们可以推测这个特效是由JavaScript编程语言实现的,特别是通过...

    HTML5 Canvas全屏背景动画特效

    在这个“HTML5 Canvas全屏背景动画特效”的主题中,我们将深入探讨如何利用Canvas来创建引人注目的全屏动画背景,以及相关的编程技术和实践技巧。 一、Canvas基础 1. Canvas元素:HTML5引入的Canvas是一个二维绘图...

    html5 canvas粒子动画进度条加载特效

    在这个“html5 canvas粒子动画进度条加载特效”中,我们主要探讨的是如何利用Canvas API来构建一种创新的加载动画,这种动画不仅具有线条边框风格,还能以百分比形式展示加载进度。 首先,Canvas API是HTML5提供的...

    HTML5Canvas雪花动画特效代码

    这款"HTML5 Canvas雪花动画特效代码"正是利用了这一特性,为用户创造出一个逼真的雪花飘落场景,增添了动态视觉效果,常用于网站背景或者节日主题设计。 在HTML5中,`&lt;canvas&gt;`元素是一个矩形区域,我们可以在这个...

    html5 canvas云粒子数字时钟动画特效

    在这个“html5 canvas云粒子数字时钟动画特效”中,我们看到的是Canvas技术与时间显示、粒子系统相结合的应用实例。下面将详细阐述相关知识点。 1. HTML5 Canvas API: HTML5 Canvas是一个基于矢量图形的画布,...

    html5 canvas多层波浪背景动画特效

    在本示例中,“html5 canvas多层波浪背景动画特效”是一个利用Canvas API实现的动态视觉效果,它可以为网页增添生动而引人入胜的背景。用户可以通过鼠标操作,如按住鼠标左右键或上下移动,来改变波浪的颜色和饱和度...

    html5 canvas小人跳舞动画特效

    这个"html5 canvas小人跳舞动画特效"是一个利用Canvas API实现的交互式动画示例,它展示了如何通过编程方式创建动态、生动的视觉效果。 在Canvas中,我们可以使用`canvas.getContext('2d')`获取2D渲染上下文,然后...

    html5 canvas流动的瀑布动画特效

    html5 canvas流动的瀑布动画特效 html5 canvas流动的瀑布动画特效

    HTML5个性圆弧时钟动画特效.zip

    HTML5个性圆弧时钟动画特效是一款html5基于canvas绘制酷炫发光的圆弧线条走动时钟动画特效。

    html5 canvas几何模型3D运动动画效果

    在这个“html5 canvas几何模型3D运动动画效果”项目中,我们将探讨如何利用HTML5 Canvas API构建一个引人入胜的3D模型动画。 1. **Canvas API基础** HTML5 Canvas是一个基于矢量图形的画布,通过JavaScript进行...

    HTML5 canvas宇宙中星云动画背景特效

    HTML5 canvas是现代网页开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,提供了丰富的绘图功能,使得创建交互式和动画效果成为可能。在这个特定的案例中,“HTML5 canvas宇宙中星云动画背景特效”是一...

    HTML5 Canvas彩色渐变背景动画效果

    这款基于HTML5 Canvas的彩色渐变背景动画效果,是利用Canvas API来实现的一种互动性极强的视觉特效。当鼠标在画布上移动时,背景颜色会随着鼠标的移动而产生渐变变化,为用户提供了生动且引人入胜的交互体验。 首先...

    HTML5 Canvas核心技术源码技术代码

    HTML5 Canvas核心技术源码技术代码、图形、动画与游戏开发。 Canvas开发、入门学习Canvas技术代码。 HTML5 Canvas核心技术源码技术代码、图形、动画与游戏开发。 Canvas开发、入门学习Canvas技术代码。 HTML5 Canvas...

    HTML5 Canvas透明丝带飘动背景动画特效

    在这个特定的案例中,“HTML5 Canvas透明丝带飘动背景动画特效”是一个利用Canvas API实现的优雅视觉效果,它通过流动的线条来模拟丝带在空中飘动的情景,为网站增添了一种动态且梦幻的氛围。 首先,让我们深入了解...

    HTML5 Canvas灯泡动画特效.rar

    在这个"HTML5 Canvas灯泡动画特效"中,我们主要关注两个核心技术:HTML5 Canvas和CSS3,以及如何结合SVG来实现互动的灯泡动画。 首先,HTML5 Canvas是一个基于矢量图形的API,通过JavaScript进行编程,可以实现实时...

    html5 canvas全屏酷炫星光闪烁3D视差背景动画特效

    在本项目"html5 canvas全屏酷炫星光闪烁3D视差背景动画特效"中,我们将深入探讨Canvas如何实现这样一个酷炫的背景动画。 首先,Canvas是一个基于矢量图形的API,通过JavaScript来操作。在这个特效中,开发者可能...

Global site tag (gtag.js) - Google Analytics