文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

HTML5怎么实现波的效果

2024-04-02 19:55

关注

本文小编为大家详细介绍“HTML5怎么实现波的效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML5怎么实现波的效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一.简介

波,在空间以特定形式传播的物理量或物理量的扰动。由于是以特定的形式传播,这个物理量(或其扰动,下同)成为空间位置和时间的函数,而且是这样的函数,即在时间t出现在空间r处周围的分布,会在时间(t+t┡)出现在空间(r+vt┡)的周围。 v一般说是个常矢量,就是有关物理量(或其扰动)的传播速度。物理量函数称为波函数,数学上它是一个叫波动方程的在特定边界条件下的解。

物理定义:某一物理量的扰动或振动在空间逐点传递时形成的运动。不同形式的波虽然在产生机制、传播方式和与物质的相互作用等方面存在很大差别,但在传播时却表现出多方面的共性,可用相同的数学方法描述和处理。

二.实现

波是由无数的点组成,每个点有着自己的运动方向和速度大小。为了实现波的效果,我们首先模拟波上的点:

JavaScript Code复制内容到剪贴板

var c = document.getElementById("myCanvas");  

    var cxt = c.getContext("2d");   

    var angel = 2 * Math.PI;  

    var step = Math.PI / 10;  

    function draw() {  

        cxt.clearRect(0, 0, 1000, 1000);  

        for (var i = 0; i < 600; i += 10) {  

            cxt.fillStyle = randomColor();  

            cxt.beginPath();  

            angel -= step;  

            cxt.arc(i, 100, 7, 0, Math.PI * 2, true);  

            cxt.closePath();  

            cxt.fill();  

        }  

    }  

    draw();  

    function randomColor() {  

        var arrHex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]; var strHex = "#";  

        var index;  

        for (var i = 0; i < 6; i++) {  

            index = Math.round(Math.random() * 15);  

            strHex += arrHex[index];  

        }  

        return strHex;  

    }  

效果如下:

image 

然后我们让波上的每个点回到某一时刻它该回到的位置:

JavaScript Code复制内容到剪贴板

var c = document.getElementById("myCanvas");  

var cxt = c.getContext("2d");   

var angel = 2 * Math.PI;  

var step = Math.PI / 10;  

function draw() {  

    cxt.clearRect(0, 0, 1000, 1000);  

    for (var i = 0; i < 600; i += 10) {  

        cxt.fillStyle = randomColor();  

        cxt.beginPath();  

        angel -= step;  

        cxt.arc(i, 150 + 100 * Math.cos(angel), 7, 0, Math.PI * 2, true);  

        cxt.closePath();  

        cxt.fill();  

    }  

}  

draw();  

效果如下:

image

然后我们利用Jscex实现动画效果:

JavaScript Code复制内容到剪贴板

var c = document.getElementById("myCanvas");  

var cxt = c.getContext("2d");      

var angel = 2 * Math.PI;  

var step = Math.PI / 10;  

function draw() {  

    cxt.clearRect(0, 0, 1000, 1000);  

    for (var i = 0; i < 600; i += 10) {  

        cxt.fillStyle = randomColor();  

        cxt.beginPath();  

               angel -= step;  

        cxt.arc(i, 150 + 100 * Math.cos(angel), 7, 0, Math.PI * 2, true);  

        cxt.closePath();  

        cxt.fill();  

    }  

}  

var step2 = 0.2;  

var waveAsync = eval(Jscex.compile("async", function () {  

    while (true) {          angel = 2 * Math.PI;  

        angel -= step2;  

        step2 += 0.1;  

        $await(Jscex.Async.sleep(100))  

        draw();  

    }  

}))  

waveAsync().start();  

读到这里,这篇“HTML5怎么实现波的效果”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯