css对数艺术(代码片段)

author author     2023-01-05     168

关键词:

Art of Logarithm
----------------
click to change

A [Pen](https://codepen.io/jagarikin/pen/aRYgrE) by [jagarikin](https://codepen.io/jagarikin) on [CodePen](https://codepen.io).

[License](https://codepen.io/jagarikin/pen/aRYgrE/license).
<canvas onclick="init();"></canvas>
var canvas,ctx,kk,ch,pt,p2,tp,nm,kan,tx,ty,tim,tm,gbai,pr;

(function()
    var a,b,r;
    canvas = document.getElementsByTagName('canvas')[0];
    ctx = canvas.getContext('2d');
    canvas.width=canvas.height=400;
    ctx.lineWidth=2;
    a=Object.getOwnPropertyNames(Math);
    for(b=0;b<a.length;b++)
        window[a[b]]=Math[a[b]];
    
    
    kk=[];
    r=0;
    for(a=0;a<8;a++)
        kk.push([cos(r),sin(r)]);
        r+=PI*2/8;
    
    
    l2=log(2);
    pr=pow(2,0.5);
    pt=[];
    ch=[];
    sik(0,0,240,0,0);
    tp=0;
    kan=1;
    nm=0;
    dsk();
)();

function init()
    tp=(tp+1)%3;
    if(!tp)
        kan=1;
        nm=0;
    else if(tp==1)
        kan=2;
        nm=0;
    else if(tp==2)
        kan=1;
        nm=1;
    


function sik(tx,ty,s,omo,ban)
    var a,b,c,r,p,o,x,y;
    a=(floor(tx*100))+"a"+(floor(ty*100))+"a"+ban;
    if(ch[a])return;
    ch[a]=1;
    if(ban>5 && abs(tx)>250 || abs(ty)>250)return;
    if(!pt[ban])pt[ban]=[];
    
    r=0;
    if(omo)r=PI/4;
    p=[];
    
    for(a=+omo;a<8;a+=2)
        x=kk[a][0]*s;
        y=kk[a][1]*s;
        p.push([tx+x,ty+y]);
    
    
    o=;
    o.x=tx;
    o.y=ty;
    o.s=s;
    o.omo=+omo;
    o.ban=ban;
    
    a=atan2(ty,tx);
    o.r=a/PI/2+0.5;
    a=pow(ty*ty+tx*tx,0.5);
    a=log(a)/log(2);
    if(a<3)a=3;
    o.han=floor(a+o.r);
    pt[ban].push(o);
    
    if(ban<12)
        ban++;
        s/=pr;
        for(a=0;a<4;a++)
            sik(p[a][0],p[a][1],s,!omo,ban);
        
    


function his(o,bai)
    var a,b,c,r,x,y;
    r=0;
    if(o.omo)r=PI/4;
    if(abs(o.x*gbai)>250 || abs(o.y*gbai)>250)return;
    a=(o.ban+bai+(tm)*4)/6*360;
    ctx.strokeStyle="hsl("+(a%360)+",80%,60%)";
    
    ctx.beginPath();
    for(a=o.omo;a<8;a+=2)
        x=kk[a][0]*o.s*bai*gbai;
        y=kk[a][1]*o.s*bai*gbai;
        ctx.lineTo(tx+o.x*gbai+x,ty+o.y*gbai+y);
    
    ctx.closePath();
    ctx.fill();
    ctx.stroke();



function dsk()
    var a,b,c,d,e,p,o;
    ctx.globalCompositeOperation = "source-over";
    ctx.fillStyle="#000";
    ctx.fillRect(0,0,canvas.width,canvas.height);
    tim=new Date().getTime()/30;
    tx=canvas.width/2;
    ty=canvas.height/2;
    gbai=1;
    tm=((tim/100)%1);
    gbai=pow(2,tm);
    
    for(b=2;b<12;b++)
        p=pt[b];
        for(a=0;a<p.length;a++)
            o=p[a];
            c=o.r;
            d=o.han;
            e=(d-c+tm*3)+1;
            if(nm)e+=sin(c*PI*6+tim/40);
            c=(e)%1;
            e=floor(e);
            if(e>=o.ban+kan)his(o,1);
            if(e==o.ban)his(o,c);
        
    
    requestAnimationFrame(dsk);
* 
  margin: 0;
  padding: 0;
  border: 0;
  background: #000000


canvas
position: relative; top:50%;
left:50%;
margin-left:-50vmin;
width:100vmin;
height:100vmin;
overflow:hidden;
display: block;

css3艺术:网页设计案例实战之angular实现序(代码片段)

最近看见一本比较好的书《CSS3艺术:网页设计案例实战》。该书作者,用详实的语言、丰富的经验组织css3各个方面的特点。我在css方面认识几乎是零,想学习学习,看完前面三章之后,我想重新复习一下前面章节... 查看详情

css3艺术:网页设计案例实战之angular实现一数据准备(代码片段)

《CSS3艺术:网页设计案例实战》的目录,按照章节,进行二级数据组织,以便于导航。1、在src/app文件夹下,建立model文件夹2、在model文件夹中,建立section.model.ts文件,并建立Section类,用于存放“节”ex... 查看详情

离谱的css!从表盘刻度到剪纸艺术(代码片段)

关注公众号 前端开发博客,领27本电子书回复加群,自助秒进前端群某日,群里有这样一个问题,如何实现这样的表盘刻度:这其实是个挺有意思的问题,方法也有很多。单标签,使用conic-gradient实现... 查看详情

css3艺术:网页设计案例实战之angular实现四实现头部和底部的导航(代码片段)

一、修改第一章介绍的html修改后的文件(src\\app\\chapter01\\chapter01-introduce\\chapter01-introduce.component.html)如下:<p>1、本章将回顾CSS中重要的基本概念。</p><p>2、本章提供了29个示例。</p><p>&nbsp;&nbsp; 查看详情

css3艺术:网页设计案例实战之angular实现一数据准备(代码片段)

《CSS3艺术:网页设计案例实战》的目录,按照章节,进行二级数据组织,以便于导航。1、在src/app文件夹下,建立model文件夹2、在model文件夹中,建立section.model.ts文件,并建立Section类,用于存放“节”ex... 查看详情

css3艺术:网页设计案例实战之angular实现四实现头部和底部的导航(代码片段)

...mall></p><p>3、读完本章,就会发现用CSS创作艺术作品是一种快乐的体验。</p>二、修改第一章第一节的html修改后的文件(src\\app\\chapter01\\chapter0101\\chapter0101.component.html)如下:<h2>1.1CSS简介</h2><p>&nbsp;... 查看详情

textascii艺术(代码片段)

查看详情

text艺术(代码片段)

查看详情

java艺术(代码片段)

查看详情

css3艺术:网页设计案例实战之angular实现序(代码片段)

最近看见一本比较好的书《CSS3艺术:网页设计案例实战》。该书作者,用详实的语言、丰富的经验组织css3各个方面的特点。我在css方面认识几乎是零,想学习学习,看完前面三章之后,我想重新复习一下前面章节... 查看详情

shascii艺术块(代码片段)

查看详情

web前端期末大作业-响应式艺术培训机构网页设计(bootstrap+html+css+javascript+)实现(代码片段)

🍅作者主页:Java李杨勇 🍅简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】🍅 文末获取源码联系 🍅 临近期末,你还在... 查看详情

实例:雪景艺术绘图(代码片段)

雪景艺术绘图  turtle艺术绘制图形艺术,指利用turtle库画笔创造性绘制绚丽多彩艺术图形的过程  turtle图形艺术效果中隐含着很多随机元素,如随机颜色、尺寸、位置和数量等。在图形艺术绘制中需要引入随机函数库random。... 查看详情

javajava函数以对数时间运行。(代码片段)

查看详情

sqlhive对数,验数数据校验(代码片段)

查看详情

text结束(键盘艺术)(代码片段)

查看详情

给逆序对数求原数组(代码片段)

文章目录给正序对数求原数组给逆序对数求原数组(原数各不相同给逆序对数求原数组(原数可相同给正序对数求原数组假设正序对数是0  1  2  1  20\\;1\\;2\\;1\\;201212解决:先管正序对数小的,从小往大放正... 查看详情

给逆序对数求原数组(代码片段)

文章目录给正序对数求原数组给逆序对数求原数组(原数各不相同给逆序对数求原数组(原数可相同给正序对数求原数组假设正序对数是0  1  2  1  20\\;1\\;2\\;1\\;201212解决:先管正序对数小的,从小往大放正... 查看详情