#つぶやきProcessingのまとめ。12月はアドベントカレンダー形式で、クリスマスに関係あるものを作成しておりました。年末は3Dグラフィックスを作りました。3Dグラフィックスは予想以上に「いいね」が頂けて嬉しい。
float r,n;float[] y=new float[72];
— はぅ君 (@Hau_kun) December 1, 2019
void setup(){size(720,720);}
void draw(){
clear();
for(int i=0;i<72;i++){
textSize(n=noise(i)*100);
resetMatrix();
translate(i*10,(y[i]=(y[i]+n/10)%920)-100);
for(r=0;r<6;r++){
rotate(PI/3);
text("Y",-n/3,0);
}
}
}#つぶやきProcessing pic.twitter.com/gA3Jsli3QD
float t,o,p;
— はぅ君 (@Hau_kun) December 2, 2019
void setup(){size(720,720);}
void draw(){
t+=.1;
o=sin(t);
p=cos(t/2);
scale(30);
fill(-1);
circle(12,6,10);
circle(12,17,12);
fill(0);
circle(10+o,5+p,1);
circle(14+o,5+p,1);
line(11+o,7,13+o,7);
line(17,13,20,10);
line(7,13,4,10);
}#つぶやきProcessing pic.twitter.com/jeGA45Uf9H
scale(30) で座標指定の文字数を圧縮。
size(720,720);
— はぅ君 (@Hau_kun) December 3, 2019
for(float r=0;r<15;r+=.2){
fill(0,r*17,0);
resetMatrix();
translate(cos(r)*280+360,sin(r)*280+360);
for(int i=0;i<5;i++){
rotate(1);
ellipse(random(50)+9,0,random(60)+9,30);
}
if(random(1)<.3){
fill(255,0,0);
circle(0,0,30);
}
}#つぶやきProcessing pic.twitter.com/ngrsZe2gDj
float t,o;
— はぅ君 (@Hau_kun) December 5, 2019
void setup(){size(720,720);noStroke();}
void draw(){
clear();
fill(192,192,0);
rotate(o=sin(t+=.1)*.2);
scale(10);
triangle(36,10,10,55,62,55);
bezier(36,10,16,15,21,35,10,55);
bezier(36,10,56,15,51,35,62,55);
circle(36+o*20,55,20);
}#つぶやきProcessing pic.twitter.com/VeHgeEYkEc
ベジェ曲線でうまく鐘の部分を作成。
float x,y;
— はぅ君 (@Hau_kun) December 6, 2019
size(720,720);
noStroke();
background(0,0,64);
fill(0,128,0);
for(y=720;y>50;y-=10){
for(x=380-y/3;x<340+y/3;x+=5){
fill(random(1)<.1?255:0,noise(x,y)*192,0);
square(x,y,10);
}
}#つぶやきProcessing pic.twitter.com/p1eoH5x7yu
てっぺんの部分は別の日に作成することに。
float t;
— はぅ君 (@Hau_kun) December 7, 2019
void setup(){size(720,720);}
void draw(){
noStroke();
fill(255,0,0);
rect(150,100,300,600,100);
rect(220,450,450,250,100);
fill(0,128,0);
rect(100,50,400,150,100);
fill(random(128)+128);
textSize(72);
text("*",random(720),random(720));
}#つぶやきProcessing pic.twitter.com/uL7DHQS7r3
周りに「*」で雪の結晶をキラキラと配置。
size(720,720);
— はぅ君 (@Hau_kun) December 8, 2019
for(int i=0;i<10;i++){
fill((i%2+1)*128,(i%2+1)*128,0);
float r=i*TAU/10-PI/2;
float d=300-i%2*150;
float e=300-(i+1)%2*150;
triangle(360,360,cos(r)*d+360,sin(r)*d+360,cos(r+TAU/10)*e+360,sin(r+TAU/10)*e+360);
}#つぶやきProcessing pic.twitter.com/IUlz5BKKey
色の塗分けを作るのが地味に面倒だった。
size(720,720,P3D);
— はぅ君 (@Hau_kun) December 10, 2019
resetMatrix();
fill(192,64,64);
translate(0,0,-360);
rotateX(-PI/8);
rotateY(PI/4);
box(100);
fill(255,255,64);
box(101,101,30);
box(30,101,101);#つぶやきProcessing pic.twitter.com/j9iiHtpE8W
テープの部分も実はbox()。リボン部分は文字数的に入らなかったので断念。
size(720,720,P3D);
— はぅ君 (@Hau_kun) December 14, 2019
resetMatrix();
translate(0,0,-200);
fill(0,0,128);
noStroke();
sphere(90);
fill(-1);
for(float y=-PI;y<PI;y+=PI/32)
for(float r=0;r<TAU;r+=PI/16){
resetMatrix();
translate(cos(r+y)*cos(y)*85,sin(y)*85,sin(r+y)*cos(y)*85-200);
sphere(5);
}#つぶやきProcessing pic.twitter.com/D6k92IJCUT
ドットパターン。
size(720,720,P3D);
— はぅ君 (@Hau_kun) December 14, 2019
resetMatrix();
translate(0,0,-200);
fill(0,96,0);
noStroke();
sphere(90);
fill(-1);
for(float y=-PI;y<PI;y+=PI/64)
for(float r=0;r<TAU;r+=PI/4){
resetMatrix();
translate(cos(r+y)*cos(y)*85,sin(y)*85,sin(r+y)*cos(y)*85-200);
sphere(5);
}#つぶやきProcessing pic.twitter.com/klWzACPeFq
クロスパターン。
size(720,720,P3D);
— はぅ君 (@Hau_kun) December 14, 2019
resetMatrix();
translate(0,0,-200);
fill(64,0,0);
noStroke();
sphere(90);
fill(-1);
for(float y=-PI;y<PI;y+=PI/8)
for(float r=y;r<TAU+y;r+=PI/32){
resetMatrix();
translate(cos(r+y)*cos(y)*85,sin(y)*85,sin(r+y)*cos(y)*85-200);
sphere(5);
}#つぶやきProcessing pic.twitter.com/1cvWtGgJKw
ラインパターン。
void setup(){size(720,720);}
— はぅ君 (@Hau_kun) December 15, 2019
void draw(){
clear();
fill(99,0,0);
blendMode(NORMAL);
rect(300,300,120,300);
arc(360,600,120,40,0,PI);
ellipse(360,300,120,40);
blendMode(ADD);
fill(255,96,0,64);
for(int i=9;i<50;i++)
circle(360,180+random(9)+i*2,i);
}#つぶやきProcessing pic.twitter.com/Uok9KLmzTH
炎の部分は加算合成で作成。
size(720,720);
— はぅ君 (@Hau_kun) December 15, 2019
noStroke();
for(float i=0;i<465;i++){
fill(i%40<20?color(255,0,0):color(-1));
if(i<50){
circle(300,310-i,50);
}else if(i<200){
circle(cos((i-50)/150*PI+PI)*60+360,sin((i-50)/150*PI+PI)*60+260,50);
}else{
circle(420,60+i,50);
}
}#つぶやきProcessing pic.twitter.com/MRZ2c6rTbk
size(720,720);
— はぅ君 (@Hau_kun) December 15, 2019
stroke(192,0,0);
beginShape(TRIANGLE_STRIP);
vertex(460,260);
for(int i=0;i<200;i++){
vertex(460-log(i)*50,260+i);
vertex(460-i*i*.001,260+i);
}
endShape();
stroke(0);
circle(460,260,80);
rect(190,430,250,50,50);#つぶやきProcessing pic.twitter.com/EomIxRt8xU
log()でいい感じの曲線を表現。
size(720,720);
— はぅ君 (@Hau_kun) December 15, 2019
strokeWeight(10);
stroke(192,192,0);
fill(192,0,0);
quad(360,320,160,600,235,550,290,600);
bezier(110,360,110,160,260,310,360,360);
bezier(110,360,110,660,360,310,360,360);
rect(310,310,100,100,30);
copy(0,0,360,720,720,0,-360,720);#つぶやきProcessing pic.twitter.com/X592ouriAh
左半分を作っておいて、それをcopy()で右側に反転することで、なんとか文字数内に収まった。
int[][] p={{9,8,7,10,11,10,8,13,10,13},{8,7,10,7,9,10,9,11,9,12}};
— はぅ君 (@Hau_kun) December 15, 2019
size(720,720);scale(40);noStroke();fill(#A08060);
rect(7,9,4,4);
for(int i=0;i<2;i++){
for(int j=0;j<5;j++)
circle(p[i][j*2],p[i][j*2+1],i==1?.5:j==0?4:3);
fill(-1);
}bezier(8,8,8,9,10,9,10,8);#つぶやきProcessing pic.twitter.com/av2t5RTolZ
かわいい。
float m,t,r;
— はぅ君 (@Hau_kun) December 16, 2019
size(720,720);noStroke();translate(360,360);for(t=0;t<TAU;t+=PI/2){rotate(t);fill(0,99,0);beginShape(11);vertex(9,0);for(r=0;r<=TAU;r+=PI/32)vertex(cos(r)*((m=pow(sin(r*8),4))*20+99)+125,sin(r)*(m*10+50));endShape();fill(160,0,0);circle(23,0,30);}#つぶやきProcessing pic.twitter.com/8mcL0L2Nix
とげとげ部分は頑張って調整した。
size(720,720);
— はぅ君 (@Hau_kun) December 17, 2019
float i,r;
for(i=200;i>0;i-=10){
fill(i/10%2==0?color(255,192,192):color(-1));
arc(360,360+i,400,200,0,PI);
}
ellipse(360,360,400,200);
stroke(255,0,0);
for(r=PI;r<PI*3;r+=PI/4)
for(i=60;i>0;i–)
circle(cos(r)*150+360,sin(r)*70+280+i,i);#つぶやきProcessing pic.twitter.com/KBJpmkosZy
size(720,720);
— はぅ君 (@Hau_kun) December 18, 2019
colorMode(HSB,9);
float x;
for(x=0;x<260;x++){
stroke(1,9,x%8<4?1:3);
line(x+230,310-sqrt(16900-sq(130-x)),x+230,510);
}
fill(1,9,2);
circle(360,510,260);
fill(1,9,7);
noStroke();
for(x=0;x<TAU*2;x+=.03)
circle(cos(x)*x*9+360,sin(x)*x*9+510,10);#つぶやきProcessing pic.twitter.com/byf8Soxsd4
縦線を上側を半円状にするため、円の数式を再履修してなんとか作成。
size(720,720,P3D);
— はぅ君 (@Hau_kun) December 19, 2019
resetMatrix();
translate(0,0,-200);
fill(99,99,0);
noStroke();
sphere(90);
fill(-1);
for(float y=-PI;y<PI;y+=PI/64)
for(float r=0;r<PI;r+=PI/32){
resetMatrix();
translate(cos(r)*cos(y)*85,sin(y)*85,sin(r)*cos(y)*85-200);
sphere(sin(y+r)*5);}#つぶやきProcessing pic.twitter.com/YklMGmyHgW
ウェーブパターン。
size(720,720);
— はぅ君 (@Hau_kun) December 20, 2019
colorMode(HSB,9);
fill(4,4,9);
triangle(20,700,180,550,260,650);
for(int i=0;i<300;i++){
fill(random(9),9,9);
resetMatrix();
translate(random(500)+220,600-random(500));
rotate(random(PI));
rect(0,0,random(20),random(20));
}#つぶやきProcessing pic.twitter.com/8lY4mBGUjP
size(1920,1080);
— はぅ君 (@Hau_kun) December 21, 2019
textSize(60);
float x,y;
for(y=0;y<1080;y++){
if(y%90<5)
stroke(255,255,64);
else if(y%180<90)
stroke(160,0,0);
else
stroke(0,96,0);
line(0,y,1920,y);
}
for(y=0;y<=1080;y+=90)
for(x=0;x<1920;x+=90)
text("❄",x+y/90%2*45,y-20);#つぶやきProcessing pic.twitter.com/dCHIOCFDBT
絵文字はとても便利。
size(720,720);
— はぅ君 (@Hau_kun) December 22, 2019
noStroke();
scale(40);
fill(192,160,128);
ellipse(9,9,5,6);
circle(7,7,2);
circle(11,7,2);
fill(192,0,0);
circle(9,11,2);
fill(0);
circle(7,9,.5);
circle(11,9,.5);
stroke(0);
curve(15,5,8,6,7,2,12,0);
curve(3,5,10,6,11,2,6,0);#つぶやきProcessing pic.twitter.com/2USpUgrYib
int[] p={9,11,8,11,10,11,9,12};
— はぅ君 (@Hau_kun) December 23, 2019
size(720,720);
noStroke();
scale(40);
fill(255,224,160);
circle(9,9,5);
fill(-1);
for(int i=0;i<4;i++)
circle(p[i*2],p[i*2+1],2);
fill(0);
circle(8,9,.2);
circle(10,9,.2);
fill(192,0,0);
circle(9,10,.5);
triangle(6,8,12,8,9,2);#つぶやきProcessing pic.twitter.com/LemLeOZn1s
Merry Christmas!
— はぅ君 (@Hau_kun) December 24, 2019
12月のつぶやきProcessingは、クリスマスに関係のあるグラフィックスを作ってました。 pic.twitter.com/T4gEhGPHDK
float i,t,d,n;
— はぅ君 (@Hau_kun) December 25, 2019
void setup(){size(720,720,P3D);}
void draw(){
clear();
lights();
t+=.01;
for(i=0;i<900;i++){
resetMatrix();
translate(i/30*5-75,50-((n=noise(i,(int)(d=t+i/10)))<.2?sin(d%1*PI)*n*200:0),-240+i%30*5);
rotateZ(n<.2?d*PI:0);
box(5);
}
}#つぶやきProcessing pic.twitter.com/BL4Ej2v4Jn
ボックスが飛び跳ねて元に戻るもの。
float t;int i,j;
— はぅ君 (@Hau_kun) December 26, 2019
void setup(){size(720,720,P3D);}
void draw(){
clear();
t+=.04;
for(j=1;j<5;j++)
for(i=0;i<441;i++){
fill(255-(j-t%1)*60);
if(noise(i,(int)t+j)>.4||i==220)continue;
resetMatrix();
translate(i%21*40-400,i/21*40-400,-200*j+t%1*200);
box(40);
}
}#つぶやきProcessing pic.twitter.com/K9EtHWSvWW
i==220を除いてあるので、画面中央にはボックスが来ない(ので”ぶつかる”ことはない)
int i;float t,n,x;
— はぅ君 (@Hau_kun) December 28, 2019
void setup(){size(720,720,P3D);}
void draw(){
clear();
t+=.02;
for(i=0;i<9;i++){
resetMatrix();
rotateX(-.4);
fill((i+t%1)*25);
translate(x+(n=noise((int)(i-t))*200-100),80+sin(t%1*PI)*20,i*50-480+t%1*50);
box(30);
}
x-=(n+x)/30;
}#つぶやきProcessing pic.twitter.com/rP7VV7U0t6
float t,r,n,x;
— はぅ君 (@Hau_kun) December 29, 2019
void setup(){size(720,720,P3D);}
void draw(){clear();t+=.1;for(int i=0;i<9;i++){fill((i+t%1)*25);for(r=0;r<TAU;r+=PI/2){resetMatrix();translate(x+cos(r)*99+(n=noise((int)(i-t)*.05)*600-300),sin(r)*99,-910+i*99+t%1*99);box(99);}}x-=(n+x)/15;}#つぶやきProcessing pic.twitter.com/9pt92XtOsB
フライトシミュレーター的なゲームで、敵の要塞から脱出するときのイメージ。
float t,r,n,x,i;
— はぅ君 (@Hau_kun) December 30, 2019
void setup(){size(720,720,P3D);}
void draw(){clear();t+=.2;for(i=0;i<30;i++){fill((i+t%1)*8);for(r=0;r<TAU;r+=PI/32){resetMatrix();translate(x+cos(r+t)*99+(n=noise((int)(i-t)*.03)*300-150),sin(r+t)*99,-330+i*9+t%1*9);box(9);}}x-=(n+x)/20;
}#つぶやきProcessing pic.twitter.com/BAjZoOc4dT
昨日のフライトシミュレーターのやつを改造してみた.
「いいね」が予想以上にいただけてうれしい。
float t;
— はぅ君 (@Hau_kun) December 31, 2019
void setup(){size(720,720,P3D);noStroke();}
void draw(){clear();lights();t+=.05;for(int i=0;i<400;i++){if(noise(i%20,(int)(i/20-t))>.3)continue;fill((i/20+t%1)*12);resetMatrix();translate(i%20*20-200,50,i/20*20-200-250+t%1*20);rotateX(-t);box(20);}}#つぶやきProcessing pic.twitter.com/G9NliQTheG
昔こんなゲームがあったなぁ。
コメント