int bCount = 6, sCount = 8, iRadius = 150, jRadius = 100;
void setup(){
size(800, 800, P3D);
background(0);
pixelDensity(displayDensity());
frameRate(30);
smooth();
}
void draw(){
background(0);
translate(width/2, height/2);
rotateX(PI*0.75);
rotate(frameCount*0.01);
noFill();
stroke(255);
strokeWeight(1.0);
Ring(bCount, sCount, iRadius, jRadius);
}
void Ring(int nB, int nS, float iRad, float jRad){
float radB = TWO_PI / nB;
float radS = TWO_PI / nS;
float frameNum = frameCount*0.005;
for(float i = 0; i < TWO_PI; i += radB){
PVector iPos = new PVector(sin(i + frameNum), 0, cos(i + frameNum));
PVector NiPos = new PVector(sin(i+radB + frameNum), 0, cos(i+radB + frameNum));
for(float j = 0; j < TWO_PI; j += radS){
PVector jPos = new PVector(sin(j + frameNum), cos(j + frameNum), sin(j + frameNum));
PVector NjPos = new PVector(sin(j+radS + frameNum), cos(j+radS + frameNum), sin(j+radS + frameNum));
PVector posA = new PVector(iRad * iPos.x + jRad * iPos.x * jPos.x,
iRad * iPos.y + jRad * jPos.y,
iRad * iPos.z + jRad * iPos.z * jPos.z);
PVector posB = new PVector(iRad * iPos.x + jRad * iPos.x * NjPos.x,
iRad * iPos.y + jRad * NjPos.y,
iRad * iPos.z + jRad * iPos.z * NjPos.z);
PVector posC = new PVector(iRad * NiPos.x + jRad * NiPos.x * NjPos.x,
iRad * NiPos.y + jRad * NjPos.y - noise(j),
iRad * NiPos.z + jRad * NiPos.z * NjPos.z);
PVector posD = new PVector(iRad * NiPos.x + jRad * NiPos.x * jPos.x,
iRad * NiPos.y + jRad * jPos.y - noise(j),
iRad * NiPos.z + jRad * NiPos.z * jPos.z);
Rect(posA, posB, posC, posD);
}
}
}
void Rect(PVector aPos, PVector bPos, PVector cPos, PVector dPos){
beginShape();
vertex(aPos.x, aPos.y, aPos.z);
vertex(bPos.x, bPos.y, bPos.z);
vertex(cPos.x, cPos.y, cPos.z);
vertex(dPos.x, dPos.y, dPos.z);
endShape(CLOSE);
}
Sample
barbe_generative_library
[Book] フィールド・レコーディング入門 響きのなかで世界と出会う
初版/ 2022.4.26
ページ数/302ページ
出版社/フィルムアート社
言語/日本語
【Amazon.co.jp で購入】
ーーーーー
”Books”では、”barbe_generative_Library”として、
barbe_generative_diary の創作において実際に購入し、読んだ本を紹介します。
ーーーーー