绘制HTML5 Canvas脉冲线

扎德·谢里夫(Zyad Sherif)

大家好,我一直想把头环绕在HTML5 Canvas动画上,但不幸的是,我想通过在10秒的间隔内对此自定义形状进行动画处理来实现下图。

我已经搞砸了它的数学原理,所以我最终只是手动编写了每个lineTo语句,最后尝试了Paul Irish的requestAnimationFrame为该行设置动画,但是没有运气。

任何帮助将不胜感激,这里是the现场演示

谢谢你们

在此处输入图片说明

您基本上需要一个仅返回2个值的函数-高和低。

这是一个仅根据周期和振荡值返回低/高值的函数:

// squared wave

// p = period (how long it takes the wave to fully complete and begin a new cycle)
// o = oscillation (change in wave height)

function squareY(x) {
    return( (x%p)<o?o:0 );
}

演示:http : //jsfiddle.net/m1erickson/A69ZV/

在此处输入图片说明

示例代码:

<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" />
<script src="http://code.jquery.com/jquery.min.js"></script>
<style>
    body{ background-color: ivory; }
    canvas{border:1px solid red;}
</style>
<script>
    $(function(){

        var canvas=document.getElementById("canvas");
        var ctx=canvas.getContext("2d");
        ctx.lineWidth=3;

        var p=30;    // period
        var o=15;   // oscillation
        var fps = 60;
        var n=0;
        animate();
        function animate() {
            setTimeout(function() {
                requestAnimationFrame(animate);

                // Drawing code goes here
                n+=1.5;
                if(n>300){
                    n=0;
                }
                ctx.clearRect(0,0,canvas.width,canvas.height);
                ctx.beginPath();
                for(var x=0;x<n;x++){
                    var y=squareY(x);
                    ctx.lineTo(x,y+50);
                }
                ctx.stroke();        

            }, 1000 / fps);
        }

        // squared sine
        function squareY(x) {
            return( (x%p)<o?o:0 );
        }

    }); // end $(function(){});
</script>

</head>

<body>
    <canvas id="canvas" width=350 height=350></canvas>
</body>
</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过HTML5 Canvas Context缩放并在给定图像上绘制网格

来自分类Dev

在保留图像的同时在HTML5 Canvas中绘制图像

来自分类Dev

来自视频的HTML5 Canvas drawImage在第一次绘制时未显示

来自分类Dev

HTML5 Canvas:向不断绘制的图像添加碰撞

来自分类Dev

在HTML5 <canvas>上从不同的角度绘制模型

来自分类Dev

在HTML5 Canvas上绘制并获取坐标

来自分类Dev

如何使用JavaScript在HTML5 Canvas中绘制圆?

来自分类Dev

HTML5 Canvas-如何在画布上的图像上绘制矩形

来自分类Dev

HTML5:通过JavaScript绘制后将透明度应用于Canvas

来自分类Dev

列表内的HTML5 Canvas,无法在所有画布上绘制图像

来自分类Dev

我怎么知道HTML5 Canvas完成绘制的时间?

来自分类Dev

HTML5 canvas javascript

来自分类Dev

从URL加载图像并绘制到HTML5 Canvas

来自分类Dev

如何获取HTML5 Canvas中绘制弧的宽度和高度?

来自分类Dev

如何在html5 canvas中绘制Fabric js strokeRect?

来自分类Dev

HTML5 Canvas绘制点之间的线距

来自分类Dev

Safari通过HTML5 Canvas错误地在SVG上绘制阴影

来自分类Dev

通过HTML5 Canvas Context缩放并在给定图像上绘制网格

来自分类Dev

HTML5 Canvas线条未绘制

来自分类Dev

HTML5 Canvas无法绘制

来自分类Dev

HTML5 Canvas:向不断绘制的图像添加碰撞

来自分类Dev

从在HTML5 Canvas中绘制某些动画中消除闪烁

来自分类Dev

HTML5 Canvas:在负载下绘制的贝塞尔曲线

来自分类Dev

形状(三角形)绘制不正确-HTML5 Canvas / JavaScript问题

来自分类Dev

HTML5 canvas javascript

来自分类Dev

HTML5 Canvas:沿文本基线绘制线条

来自分类Dev

为什么不能在HTML5 Canvas中绘制图像阵列?

来自分类Dev

如何使用html5 canvas绘制多级饼图?

来自分类Dev

如何在 HTML5 Canvas 上使用外部 CSS 绘制 SVG

Related 相关文章

  1. 1

    通过HTML5 Canvas Context缩放并在给定图像上绘制网格

  2. 2

    在保留图像的同时在HTML5 Canvas中绘制图像

  3. 3

    来自视频的HTML5 Canvas drawImage在第一次绘制时未显示

  4. 4

    HTML5 Canvas:向不断绘制的图像添加碰撞

  5. 5

    在HTML5 <canvas>上从不同的角度绘制模型

  6. 6

    在HTML5 Canvas上绘制并获取坐标

  7. 7

    如何使用JavaScript在HTML5 Canvas中绘制圆?

  8. 8

    HTML5 Canvas-如何在画布上的图像上绘制矩形

  9. 9

    HTML5:通过JavaScript绘制后将透明度应用于Canvas

  10. 10

    列表内的HTML5 Canvas,无法在所有画布上绘制图像

  11. 11

    我怎么知道HTML5 Canvas完成绘制的时间?

  12. 12

    HTML5 canvas javascript

  13. 13

    从URL加载图像并绘制到HTML5 Canvas

  14. 14

    如何获取HTML5 Canvas中绘制弧的宽度和高度?

  15. 15

    如何在html5 canvas中绘制Fabric js strokeRect?

  16. 16

    HTML5 Canvas绘制点之间的线距

  17. 17

    Safari通过HTML5 Canvas错误地在SVG上绘制阴影

  18. 18

    通过HTML5 Canvas Context缩放并在给定图像上绘制网格

  19. 19

    HTML5 Canvas线条未绘制

  20. 20

    HTML5 Canvas无法绘制

  21. 21

    HTML5 Canvas:向不断绘制的图像添加碰撞

  22. 22

    从在HTML5 Canvas中绘制某些动画中消除闪烁

  23. 23

    HTML5 Canvas:在负载下绘制的贝塞尔曲线

  24. 24

    形状(三角形)绘制不正确-HTML5 Canvas / JavaScript问题

  25. 25

    HTML5 canvas javascript

  26. 26

    HTML5 Canvas:沿文本基线绘制线条

  27. 27

    为什么不能在HTML5 Canvas中绘制图像阵列?

  28. 28

    如何使用html5 canvas绘制多级饼图?

  29. 29

    如何在 HTML5 Canvas 上使用外部 CSS 绘制 SVG

热门标签

归档