xxxxxxxxxx
115
var colorsBlue = "7acfd6-#317D9D-175676-4BA3C3-cce6f4".split("-").map(a=>"#"+a)
var colorsRed = "06aed5-086788-EE8775-fff1d0-dd1c1a".split("-").map(a=>"#"+a)
function setup() {
noCanvas();
// specify multiple formats for different browsers
fingers = createVideo(['Untitled.mov']);
}
function planet(x,y,r=30){
push()
translate(x,y)
let lastX,lastR, lastAng
for(var i=0;i<120;i++){
let cc = color(colorsBlue[int(noise(frameCount/10,1)*colorsBlue.length)%colorsBlue.length])
cc.setAlpha(160)
fill(cc)
let shadowCC = color(cc)
shadowCC.setAlpha(255)
//模糊效果
drawingContext.shadowColor = shadowCC;
drawingContext.shadowBlur = 30;
let xx = noise(i*2, frameCount/100+mouseX/500)*r*noise(i)*2
let ang = noise(i, frameCount/800+mouseY/1000,500)*10*PI
let rr = noise(i, 500, frameCount/50+mouseY/500)*50*(15/(sqrt(xx)+1))
ellipse(xx*cos(ang),xx*sin(ang),rr) //用座標控制分布
if (lastX && random()<0.1){ //加線條
push()
stroke(255,50)
line(xx*cos(ang), xx*sin(ang), lastX*cos(lastAng), lastX*sin(lastAng))
pop()
}
let cc2 = colorsRed[int(noise(frameCount/10,i)*colorsBlue.length)%colorsBlue.length]
fill(cc2)
drawingContext.shadowColor = color(cc2);
drawingContext.shadowBlur = 10;
push() //小粒子設成方塊狀
rectMode(CENTER)
translate(xx*cos(ang*2),xx*sin(ang*2))
rotate(ang*2)
rotate(i)
rect(0,0,sqrt(rr)*sin(frameCount/2+i)*2 )
pop()
lastX=xx
lastR=rr
lastAng=ang
if (random()<0.5){
push()
stroke(cc2)
noFill()
arc(0,0,xx*2,xx*2,ang*2,ang*2+noise(i,frameCount/200))
//軌道變橢圓
pop()
}
}
pop()
}
var overAllTexture
function setup(){
createCanvas(1112,834);
overAllTexture = createGraphics(width,height)
overAllTexture.loadPixels()
//noStroke()
for ( var i=0;i<width+50;i++){
for( var o=0;o<height+50;o++){
overAllTexture.set(i,o,color(100,noise(i/3,o/3,i*o/50)*random([0,10,20])))
}
}
overAllTexture.updatePixels()
//createCanvas(windowWidth,windowHeight);
//rect(0,0,width,height)
blendMode(SCREEN) //加上半徑,控制球分布的範
}
function draw(){
blendMode(BLEND)
fill(4, 11, 33,60)
rect(0,0,width,height)
blendMode(SCREEN)
planet(width/2,height/2, 300)
push()
blendMode(MULTIPLY)
image(overAllTexture,0,0)
pop()
stroke(255,50)
blendMode(MULTIPLY)
for(var i=0;i<width;i+=50){
fill(200,map(i,width/2,width*2,0,1))
ellipse(width/2,height/2,pow(i,0.9)*2,pow(i,0.9)*2)
}
blendMode(BLEND)
for(var i=0;i<width;i+=10){
stroke(colorsRed[3])
//line(i,5,i,10+(i/10%5==0?10:0))
}
}
// save jpg
let lapse = 0; // mouse timer
function mousePressed(){
if (millis() - lapse > 400){
save("img_" + month() + '-' + day() + '_' + hour() + '-' + minute() + '-' + second() + ".jpg");
lapse = millis();
}
}