Processing과 p5.js 입문 (다른 언어를 한 적이있는 사람들을 위해) 01
10825 단어 p5.jsprocessing파이썬자바스크립트
Processing이란?
인터랙티브 아트와 작품에 능숙하며 종종 미디어 아트에 사용되는 언어와 IDE
특징
매우 재미있는 언어로, 나는이 언어로 프로그래밍 늪에 빠졌다.
예를 들어 어떤 것이 만들 수 있을까 하면 (gifExport라는 라이브러리도 있지만, 거동이 이상하기 때문에 화면 캡처하고 있습니다)
마우스의 움직임에 따라 주위의 원이 회전하고 있습니다. 프레임 레이트 빌어 먹을 때문에 전혀 깨끗하게 보이지 않는다.
소스 코드
소스 코드는 이런 식으로 간결합니다. (코드를 쓰는 사람이 빌어 먹기 때문에 더럽습니다)
처음에 한 번만 발생하는 이벤트를 setup에 반복하고 싶은 것을 draw에 씁니다.
자바 기반이므로 즉시 익숙해질 수 있습니다.
void setup()
그리고void draw()
에 함수를 알 수 있는 성질상 글로벌 변수가 많아지는 경향이 있습니다.
kurukuru.pde
float[] x, y, pX, pY;
float[] distance;
float[] gapTheata;
color[] c;
final int n = 200;
void setup(){
size(1000, 1000);
background(255);
colorMode(HSB);
x = new float[n];
y = new float[n];
pX = new float[n];
pY = new float[n];
distance = new float[n];
gapTheata = new float[n];
c = new color[n];
for(int i = 0; i < n; i++){
x[i] = y[i] = pX[i] = pY[i] = 30;
distance[i] = random(15, 150);
gapTheata[i] = random(-PI, PI);
c[i] = color(random(255), 255, 255, random(255));
}
}
void draw(){
background(255);
noStroke();
colorMode(HSB);
for(int i = 0; i < n; i++){
fill(c[i]);
float theata = radians(frameCount*5.0) + gapTheata[i];
float dist =distance[i] + 90.0*noise(theata/1.0, frameCount/100.0, i);
x[i] = (mouseX + dist*cos(theata) + pX[i])/2.0;
y[i] = (mouseY + dist*sin(theata) + pY[i])/2.0;
pushMatrix();
translate(x[i], y[i]);
ellipse(0, 0, 20, 20);
popMatrix();
pX[i] = x[i]; pY[i] = y[i];
}
colorMode(RGB);
fill(0);
ellipse(mouseX, mouseY, 40, 40);
}
자세한 설명은 생략합니다.
재미있는 것
noise(w, x, y, z)
pushMatrix()
popMatrix()
colorMode()
color
frameCount
웹에 이식하고 싶습니다.
그럼 이것을 웹에 이식하고 싶을 때
p5.js를 사용할 수 있습니다.
이것을 웹에 이식해 봅시다. (다음 기사에서)
Reference
이 문제에 관하여(Processing과 p5.js 입문 (다른 언어를 한 적이있는 사람들을 위해) 01), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hungrykirby/items/588dc14e934d582f1705텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)