【p5.js】 动态图形临摹

【互动媒体技术】 动态图形临摹

我选择的是这幅进行临摹,它的运动规律比较简单,就是一圈圈的小球在绕中心做顺时针匀速旋转

在这里插入图片描述

我对它进行了一些修改,让小球的颜色有了渐变效果在这里插入图片描述

代码如下:


let offset=0;
let r = 20;
let speed = 0.1

function setup() {
  createCanvas(400, 400);
  
}


function draw() {
  background(0);
  
  
  for(let layer = 1;layer<=8;layer++){
    fill(200,255-layer*20,layer*20);
    for(let angle=0;angle<360;angle+=360/(4*layer)){
     var x = width/2+cos(radians(angle+offset*(9-layer)/10))*r*layer;
     var y = height/2+sin(radians(angle+offset*(9-layer)/10))*r*layer;
    ellipse(x,y,10,10);
    }
    offset+=speed;
  }
 
  offset+=1; 
  
}


经过多次尝试,发现通过调整每圈中心的位置,可以让它看起来有立体感在这里插入图片描述

代码如下:


let offset=0;
let r = 20;
let speed = 0.8

var x;
var y;


function setup() {
  createCanvas(500, 500);
}

function draw() {
  background(0);
  for(let layer = 1;layer<=8;layer++){
    fill(200,layer*20,layer*30);
    for(let angle=0;angle<360;angle+=360/(4*layer)){
   
     x = width/2+cos(radians(angle+offset*(9-layer)/10))*r*layer+pow(1,layer)*10;
     y = height/2+sin(radians(angle+offset*(9-layer)/10))*r*layer+pow(1,layer)*10;
    ellipse(x+layer*10-100,y+layer*10-100,10,10);
    }
    offset+=speed;
    
  }
 
  offset+=1; 
  

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值