Skip to content

Make Processing

2012.06.03 16:39

감사합니다 ㅎ

조회 수 9292 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print 수정 삭제

감사합니다 올려주신 답변을 토대로 만들어보앗는데..

 

다른문제가 보입니다. 키보드를 누르면 그대로 영어가 나오기는 하는데..

 

색도 누를떄마다 바뀌는 모양으로 하였습니다.

 

그런데 이것이 글자로 만들어졌다가.

 

퍼지는 모양이 다양한 방식으로 랜덤하게 불꽃을 형상한다던지

 

폭팔로 터진다던지의 형상을 나타내고 싶은데 무엇이 잘못되었는지

 

어떤식으로 해야하는지 알고 싶습니다.

 

코드는 아래에 있습니다. 답변주시면 정말 감사합니다ㅜ

 

float mainHue = random(360);

int N = 400;

float repulsion = 0.05; // how much the particles repel each other

float contraction = 0.0004; // how much they are pulled towards the center

float damping = 0.9; // how much drag is applied to the particles

float drift = 0.5; // how strong the random forces are

int impulse = 50; // number of frames until the particles reach the target

int activeTime = 53; // number of frames until they become idle again

int printTime = 100; // number of frames between letters

boolean idle = true; // idle => particles repel and drift around

boolean printing = false;

String buffer = "";

int counter = 0;

PGraphics letter;

PFont font;

LinkedList<Particle> parts = new LinkedList<Particle>();

void setup() {

size(400, 400);

background(255,255,255);

smooth();

colorMode(RGB, 360, 1, 1);

for (int i = 0; i < N; i) {

parts.add(new Particle(random(width), random(height), 0, 0));

}

font = loadFont("ArialNarrow-150.vlw");

}

void draw() {

if (!buffer.equals("") && !printing) {

char let = buffer.charAt(0);

pushParticles(let);

buffer = buffer.substring(1);

idle = false;

printing = true;

counter = 0;

}

if (!idle || printing) {

counter;

}

if (idle) {

idleUpdate();

}

if (!idle && counter > activeTime) {

idle = true;

}

if (printing && counter > printTime) {

printing = false;

}

if (frameCount % 2 == 0) {

noStroke();

fill(0, 55);

rect(0, 0, width, height);

}

for (Particle p : parts) {

p.update();

noStroke();

p.draw();

}

}

void idleUpdate() {

ListIterator<Particle> it = parts.listIterator();

while (it.hasNext ()) {

Particle p = it.next();

p.vx = (width/2-p.x)*contraction;

p.vy = (height/2-p.y)*contraction;

// iterate over the particles which the current particle has not interacted with yet

ListIterator<Particle> forward = parts.listIterator(it.nextIndex());

while (forward.hasNext ()) {

Particle np = forward.next();

float p2npx = np.x-p.x;

float p2npy = np.y-p.y;

float sqdist = p2npx*p2npx p2npy*p2npy;

//apply repulsive forces

p.vx -= p2npx/sqdist * repulsion;

np.vx= p2npx/sqdist * repulsion;

p.vy -= p2npy/sqdist * repulsion;

np.vy= p2npy/sqdist * repulsion;

}

// apply a random force

float nscale = 0.01;

float offset = 500;

p.vx = ((noise(p.x*nscale, p.y*nscale, frameCount*nscale) - 0.5) / p.s)*drift;

p.vy = ((noise(p.x*nscaleꇷ, p.y*nscaleꇷ, frameCount*nscale*0.2) - 0.5) / p.s)*drift;

}

}

// give all particles a push toward a random pixel of the letter

void pushParticles(char c) {

// put the letter in a PGraphics and get its pixels

letter = createGraphics(width, height, JAVA2D);

letter.textFont(font);

letter.beginDraw();

letter.text(c, width/2-30, height/2);

letter.endDraw();

letter.loadPixels();

//determine the number of pixels in the letter

int[] lPixels = letter.pixels;

int nnz = 0;

for (int i=0; i<lPixels.length; i) {

if (lPixels[i] != 0)

nnz;

}

// create a list of indices that correspond to pixels of the letter

int[] index = new int[nnz];

int idx = 0;

for (int i=0; i<lPixels.length; i) {

if (lPixels[i] != 0) {

index[idx] = i;

idx;

}

}

for (Particle p : parts) {

// pick a random pixel of the letter and push the particle towards it

int targPixel = (int) random(0, nnz);

int targX = index[targPixel]%width;

int targY = index[targPixel]/width;

float dx = targX - p.x;

float dy = targY - p.y;

float factor = (1-damping)/(1-pow(damping, impulse));

p.vx = dx*factor;

p.vy = dy*factor;

}

}

int age = 0;

void keyPressed() {

if (key >= '!' && key <= '~'){

buffer = buffer key;

age= age 15;

if(age >=200)

age = 10;

}

colorMode(RGB, random(360), random(10), random(10));

}

class Particle {

float x,y;

float vx = 0, vy = 0;

float s = 10;

int maxAge = (int) random(100,600);

boolean alive = true;

float col = random(20,40) mainHue;

float relAge = 0;

float speedSq = 0;

Particle(float xx, float yy) {

x = xx;

y = yy;

}

Particle(float xx, float yy, float vxx, float vyy) {

x = xx;

y = yy;

vx = vxx;

vy = vyy;

}

void update() {

x = vx;

y = vy;

vx *= damping;

vy *= damping;

relAge = ((float)age)/maxAge;

speedSq = vx*vx vy*vy;

s = 10 * (1 - (relAge))*(1 - (relAge))*(1 - (relAge)).5;

if (age > maxAge)

alive = false;

}

void draw() {

fill(col,1-(10-s)*0.05,(10-s)/10.8);

fill((int)(col speedSq*10*relAge)%360,

1 - relAge*0.3,

speedSq*relAge*2.2,

speedSq*relAge*255 255*relAge);

ellipse(x,y,s,s);

}

}

  • profile
    smileblue 2012.06.03 20:43

    안녕하세요~ 이재중 입니다.

    문법도 약간이상한것 같은데..;;;

    우선 소스가 정상적으로 실행이 되지 않네요..1.5.1 과 2.04a 버전에서 테스트 해봤습니다.~

    다시한번 압축해서 올려주세요~

  • ?
    방보람 2012.06.03 21:11

    1.5.1 버전인데.. 폰트를 설정하지 않으면 안되더라구요.

    아직 초보라.. 이것처것 만지면서 무작정하는 식이구요ㅠ

  • profile
    smileblue 2012.06.04 10:56

    ㅎㅎㅎ 폰트 문제는 아니고요~~ 아마 게시판 소스를 바로 복사해 오면서 문제가 되는 것 같으니..지금 게시판에 올리신 소스의 pde 파일을 업로드해주세요~~


Q&A

질문하는 공간입니다. 회원이면 누구나 질문/답변 할 수 있습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
297 Video 관련 하여 질문드립니다. 2 s8848m 2013.09.06 17451
296 Max/Msp 에서 OSC externals 파일들을 넣는 곳이 어딘지 궁금해서 질문드립니다. 1 file beautyfullcastle 2013.08.30 17121
295 아두이노 관련 질문드립니다. 7 망고 2013.10.09 10791
294 프로세싱 폰트관련 질문입니다. 1 방보람 2012.06.01 9628
293 프로세싱 캠에 대해 문의좀 해보려구요 ,, 4 조아진 2012.06.04 9620
» 감사합니다 ㅎ 3 방보람 2012.06.03 9292
291 프로세싱문의요 1 file 조아진 2012.06.04 8964
290 움직이는 오브제를 정지시키고 프린터로 출력.. 1 오후세시 2011.10.26 8563
289 프로세싱 시리얼통신에 관련하여 질문드립니다^^ 3 file songyun114 2013.06.12 8291
288 필터 이미지를 넣는 부분에서 문제가 . 4 file 조아진 2012.06.06 8278
287 키넥트 관련 질문드립니다 4 songyun114 2013.07.15 8117
286 processing 외부 txt 파일 한글 깨짐문제 1 biclen 2013.07.27 7881
285 사용자가 직접 타이핑 하기. 3 오후세시 2011.10.15 7708
284 processing과 vvvv 2 맨땅 2013.10.05 7578
283 다시올립니다 급해요 ㅜ 1 file 조아진 2012.10.12 7435
282 이재중 선생님께 질무운~ 5 file 망고 2013.09.27 7417
281 [질문] 프로세싱 2.0 b8에서 스탠드 얼론의 형태로 어플리케이션 생성시 오류가 납니다. 2 file soundnscape 2013.04.28 7147
280 한 번 더 질문 드릴게요 4 file 유구르트 2012.12.20 7005
279 이재중 선생님께, 프로세싱 워크샵 질문~ 2 file 망고 2013.06.18 6708
278 안녕하세요 :) 3 yuriri 2012.06.14 6637
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 15 Next ›
/ 15

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Copyright (c) 2012 Make Processing. All Right Reserved.

smileblue

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소