`

JS canvas 标签制作色相球

 
阅读更多
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>JS canvas标签制作色相球</title>
</head>
<body>
<canvas></canvas>
<script type="text/javascript">
var canvas,ctx,max,p,count;
window.onload=function(){
    var a,b,r;
    canvas = document.getElementsByTagName('canvas')[0];
    ctx = canvas.getContext('2d');
    canvas.width=canvas.height=400;
    ctx.fillRect(0,0,400,400);
    max=80;
    count=150;
    p=[];
    r=0;
    for(a=0;a<max;a++){
        p.push([Math.cos(r),Math.sin(r),0]);
        r+=Math.PI*2/max;
    }
    for(a=0;a<max;a++)p.push([0,p[a][0],p[a][1]]);
    for(a=0;a<max;a++)p.push([p[a][1],0,p[a][0]]);
    rus();
};

function rus(){
    var a,b,c,d,e,s,tim,p2,xp,yp,xp2,yp2,x,y,z,x1,y1,z1;
    ctx.globalCompositeOperation = "source-over";
    ctx.fillStyle="rgba(0,0,0,0.03)";
    ctx.fillRect(0,0,canvas.width,canvas.height);
    ctx.globalCompositeOperation = "lighter";
    tim=count/5;
    for(e=0;e<3;e++){
        tim*=1.7;
        s=1-e/3;
        a=tim/59;
        yp=Math.cos(a);
        yp2=Math.sin(a);
        a=tim/23;
        xp=Math.cos(a);
        xp2=Math.sin(a);
        p2=[];
        for(a=0;a<p.length;a++){
            x=p[a][0];y=p[a][1];z=p[a][2];
            y1=y*yp+z*yp2;
            z1=y*yp2-z*yp;
            x1=x*xp+z1*xp2;
            z=x*xp2-z1*xp;
            z1=Math.pow(2,z*s);
            x=x1*z1;
            y=y1*z1;
            p2.push([x,y,z]);
        }
        
        s*=120;
        for(d=0;d<3;d++){
            for(a=0;a<max;a++){
                b=p2[d*max+a];
                c=p2[((a+1)%max)+d*max];
                ctx.beginPath();
                ctx.strokeStyle="hsla("+((a/max*360)|0)+",70%,60%,0.15)";
                ctx.lineWidth=Math.pow(6,b[2]);
                ctx.lineTo(b[0]*s+200,b[1]*s+200);
                ctx.lineTo(c[0]*s+200,c[1]*s+200);
                ctx.stroke();
            }
        }
    }
    count++;
    requestAnimationFrame(rus);
}
</script>
</body>
</html>

 

效果图:

 

 

 

 

 

 

  • 大小: 197.7 KB
分享到:
评论

相关推荐

    JS基于HTML5的canvas标签实现炫目的色相球动画效果实例

    本文实例讲述了JS基于HTML5的canvas...JS canvas标签制作色相球&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;canvas&gt;&lt;/canvas&gt; [removed] var canvas,ctx,max,p,count; [removed]=function(){ var a,b,r; canvas = do

    js html5 canvas制作多个小球碰撞的动画效果

    本教程将详细讲解如何利用JavaScript和HTML5的Canvas API来制作一个包含多个小球碰撞的动画效果。 首先,我们需要在HTML文件中创建一个`&lt;canvas&gt;`元素,它是画布的基础,用于渲染图形。例如: ```html &lt;!DOCTYPE ...

    javascript - Canvas动画- 太空星球运动

    而`js`文件可能是将JavaScript代码分离出来,便于管理和维护。在实际项目中,将JavaScript代码放在单独的文件中是一个良好的实践,因为这样可以提高代码的可读性和可维护性。 总结一下,创建“太空星球运动”Canvas...

    html页面,js利用canvas绘制拖动和缩放球体

    本主题将深入探讨如何利用JavaScript与Canvas结合,实现一个交互式的功能:拖动和缩放球体。这个功能在网页游戏、数据可视化以及用户界面设计中非常常见。 首先,我们需要在HTML页面上创建一个`&lt;canvas&gt;`元素,并...

    让IE兼容 HTML5的canvas标签

    为了使这些旧版IE浏览器能够兼容HTML5的canvas标签,开发者通常会利用名为"excanvas"的JavaScript库。 Excanvas是一个由G_v2开发的开源项目,其主要目标就是为旧版IE浏览器提供canvas的支持。它通过VML(Vector ...

    canvas炫彩小球

    使用canvas实现的炫彩小球案例,有利于理解canvas使用

    用canvas和requestAnimationFrame制作小球动画

    用canvas和requestAnimationFrame制作的小球动画,用requestAnimationFrame代替setInterval和setTimeout计时器,解决后台动画播放带来的耗cpu / 耗电、计时器设置频率太高,cpu排队太多的情况

    HTML5 Canvas 3D球形文字标签云动画

    个人博客程序中经常会使用的一个功能叫标签云,就是把许多标签文字...今天要分享的就是一款基于HTML5 Canvas的3D球形标签云动画,你可以定义任意的文字,然后调用HTML5代码初始化一个3D的球形标签云,效果非常不错。

    Canvas实现文字云(标签云)效果,多浏览器支持

    在本文中,我们将深入探讨如何使用HTML5的Canvas API实现一个跨浏览器的文字云(标签云)效果,特别关注对IE9及更高版本的支持。Canvas是HTML5中的一个强大的绘图工具,允许开发者直接在网页上进行图形绘制。下面,...

    基于JS和Canvas的小球碰撞动画演示

    js和html5实现碰撞球动画 使用 html5 中的 canvas, 实现小球相互碰撞并反弹,反弹算法比较简单

    Chartjs使用canvas标签的实现简洁HTML5图表

    通过`&lt;canvas&gt;`标签,我们可以创建一个画布,然后使用JavaScript的Canvas API进行绘图。Chart.js正是利用了这个特性,将数据转化为可视化的图表。 2. **Chart.js安装**:Chart.js通常通过npm或CDN引入到项目中。...

    使用JavaScript+canvas实现图片裁剪

    好了,canvas的介绍就先到这里,下面我们来看看javascript结合canvas实现图片的裁剪代码: 代码如下: var selectObj = null; function ImageCrop(canvasId, imageSource, x, y, width, height) {  var c

    js canvas画布实现截图并且提供下载图片功能

    然后,我们可以通过JavaScript获取这个`canvas`元素,并在其上进行绘图。例如,我们可以用`fillRect`方法画一个矩形: ```javascript var canvas = document.getElementById('myCanvas'); var ctx = canvas....

    html5 canvas绘制管道里跳动小球动画特效

    在Canvas上绘制任何图形或动画,首先需要获取Canvas元素并创建2D渲染上下文。这可以通过JavaScript来完成,如下所示: ```javascript var canvas = document.getElementById('myCanvas'); var ctx = canvas....

    html5 canvas文字标签云3D旋转动画特效.zip

    `tagcanvas.min.js`是专为实现标签云效果设计的JavaScript插件,它处理了复杂的3D渲染和动画逻辑。 在HTML5 Canvas中,我们通常通过`&lt;canvas&gt;`元素在文档中定义画布,并通过JavaScript的`CanvasRenderingContext2D`...

    canvas粒子球.rar

    "canvas粒子球"就是一个利用Canvas实现的酷炫效果,它通过JavaScript进行动态计算和渲染,创造出一个旋转的粒子球。接下来,我们将深入探讨这个效果的实现原理和技术细节。 首先,我们需要理解Canvas的基本结构。...

    原生js+canvas实现图片裁剪

    接下来,我们用JavaScript获取canvas元素,并创建一个绘图环境(context): ```javascript var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); ``` 图片裁剪的核心在于两个...

    javascript制作桌球游戏

    JavaScript制作桌球游戏是一个有趣且具有挑战性的编程项目,它涉及到网页交互、物理模拟和图形渲染等多个技术领域。在这个项目中,我们将深入探讨JavaScript的基本语法、DOM操作、事件处理、Canvas API以及简单的...

Global site tag (gtag.js) - Google Analytics