首页 > 其他分享 >运用canvas绘制出好玩的粒子效果

运用canvas绘制出好玩的粒子效果

时间:2024-09-27 08:52:46浏览次数:10  
标签:canvas floor 好玩 random arr var cr 绘制 Math

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
         *{
            margin: 0;
            padding:0;
        }
 canvas{

 }
    </style>
</head>
<body>
    <canvas id="canvas" width="600" height="600"></canvas>
    <script>
        var canvas=document.getElementById("canvas");
        var context=canvas.getContext("2d");
  var width=canvas.width=window.innerWidth;
  var height=canvas.height=window.innerHeight;
     var arr=[];
     var qiuqiu=setInterval(function(){
        var maxqiu=200;
         if(arr.length>=maxqiu){
             clearInterval(qiuqiu)
     }
     var r=Math.floor(Math.random()*256);
     var g=Math.floor(Math.random()*256);
     var b=Math.floor(Math.random()*256);
     var a=Math.random();
    var x=Math.floor(500+Math.random()*100);
    var y=Math.floor(500+Math.random()*100);
    var cr=Math.floor(10+Math.random()*20);
    var sx=Math.floor(-2+Math.random()*4);
    var sy=Math.floor(-2+Math.random()*4);
    var bg="rgba("+r+","+g+","+b+","+a+")";
    var obj={
        x:x,
        y:y,
        cr:cr,
        bg:bg,
        sx:sx,
        sy:sy
    }
    if(obj.sx!=0||obj.sy!=0){
        arr.push(obj);
    }
},30)
setInterval(function(){

    context.clearRect(0,0,width,height);
    for(var i=0;i<arr.length;i++){
       if(arr[i].x+arr[i].cr>width||arr[i].x-arr[i].cr<=0){
        arr[i].sx=arr[i].sx*-1;
    }
     if(arr[i].y+arr[i].cr>height||arr[i].y-arr[i].cr<=0){
        arr[i].sy=arr[i].sy*-1;
     }
     arr[i].x=arr[i].x+arr[i].sx;
     arr[i].y=arr[i].y+arr[i].sy;
    context.beginPath();
    context.fillStyle=arr[i].bg;
    context.arc(arr[i].x,arr[i].y,arr[i].cr,0,2*Math.PI);
    context.fill();
    context.closePath();

    }

},30)

    </script>
</body>
</html>

标签:canvas,floor,好玩,random,arr,var,cr,绘制,Math
From: https://blog.csdn.net/qq_30327395/article/details/142584113

相关文章

  • Python画笔案例-064 绘制彩花之旋转羽毛
    1、绘制彩花之旋转羽毛通过python的turtle库绘制彩花之旋转羽毛,如下图:2、实现代码 绘制彩花之旋转羽毛,以下为实现代码:"""彩花之旋转羽毛.py本程序需要coloradd模块支持,安装方法:pipinstallcoloradd技术支持微信scartch8,QQ:406273900www.lix......
  • WPF canvas Draw line , ellipse and rectangle, save canvas and contents as pictu
    //xaml<Windowx:Class="WpfApp417.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • 10章4节:二分类变量的Meta分析模型,绘制漏斗图和应用剪补法,最后绘制和解读轮廓增强漏斗
    本文继续接着用Fleiss93数据集。一、公式构建和结果解读的前文回顾Fleiss93数据集来自Meta扩展包,包含了20世纪70年代至80年代进行的七个关于阿司匹林预防心肌梗死后死亡的临床试验。10章3节:二分类变量的Meta分析模型,分析公式构建和结果解读-CSDN博客文章浏览阅读421次。本......
  • WPF InkCanvas selection mode, save all/selected strokes, load strokes file, sav
    //xaml<Windowx:Class="WpfApp416.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • 【Canvas与徽章】金穗蓝盾徽章
    【成图】【代码】<!DOCTYPEhtml><htmllang="utf-8"><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><head><title>金穗蓝盾draft1</title><styletype="text/css&qu......
  • 【Canvas与徽章】庆祝建国75周年徽章
    【成图】【代码】<!DOCTYPEhtml><htmllang="utf-8"><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><head><title>庆祝建国75周年</title><styletype="text/css"......
  • 手写板 canvas
    <!doctypehtml><html><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metaname="viewport"content="width=device-width">&......
  • Canvas简历编辑器-Monorepo+Rspack工程实践
    Canvas简历编辑器-Monorepo+Rspack工程实践 Canvas简历编辑器-Monorepo+Rspack工程实践在之前我们围绕Canvas聊了很多代码设计层面的东西,在这里我们聊一下工程实践。在之前的文中我也提到过,因为是本着学习的态度以及对技术的好奇心来做的,所以除了一些工具类的库例如 ArcoDe......
  • Python-通过Wind获取股票收盘价并绘制收盘价曲线图及均价水平参考线
    注意事项:需要安装Wind金融客户端并且用windPy权限代码如下:importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlibasmplimportpandasaspdfromWindPyimport*#设置属性防止中文乱码mpl.rcParams['font.family']='SimHei' #设置字体为黑体mpl.rcPar......
  • 【Unity】绘制折线图和柱状图
    绘制折线图和柱状图,主要包括如下效果:背景网格的绘制;折线和拐点的绘制;长方形柱的绘制(柱宽可以修改);X/Y轴的标签绘制(标签的单位可以修改、X轴的间距可以修改);鼠标移动到折线拐点/长方形柱是显示对应数值Tooltip;成果展示Scene部分脚本部分定义折线图和柱状图的接口//折线......