2013-03-28 3 views
0

일부 데이터가 기본 스레드와는 별도의 스레드에서 보간되는 처리 응용 프로그램을 만들고 있습니다. 이 새 스레드에서는 color aColor = color(255-(255*_hue[0]), 255, 255); 줄이 있습니다. (colorscheme는 HSB입니다).처리 색상 설정이 전체 창 색상에 영향을줍니다.

이 줄은 화면을 빨간색으로 깜박이게합니다. 그것은 라인 (누가 aColor 변수가 이 아니며 사용)이 응용 프로그램 창에서 심각한 색상 변경을 일으키는 것 같습니다. 그려진 이미지가 없습니다.

처리와 관련하여 버그가 있는지, 해결책이 있는지, 해결 방법이 있는지 궁금합니다. 감사합니다

+0

테스트하기 쉬운 코드를 더 게시 할 수 있습니까? 나는 당신이'draw()'루프에서 어딘가에'fill() '을 호출하고있는 것으로 의심하고있다. –

+0

내 노트북으로 돌아 가면 코드를 게시 하겠지만 그래, 내 그림에서 fill()을 어떻게 얻을 수 있는가? 그것없이 같은 효과? –

답변

3

변수에 관계없이 aColor 변수를 사용하는 경우 draw() 어딘가의 fill()을 사용해야합니다.

기본적으로 fill()은 전역 적으로 작동합니다. fill() 호출 후에 그려지는 모든 후속 도형은 해당 색상을 갖습니다.

fill() 호출을 분리하여 전역이 아닌 로컬로 그려진 도형에 영향을 주려면 pushStyle()/popStyle() 호출 내에서 fill() 호출을 격리해야합니다.

fill(192,0,0);//set global fill to red 
rect(0,0,50,50); 

pushStyle(); 
fill(0,192,0);//set local fill to green 
rect(50,0,50,50); 
popStyle(); 

rect(50,50,50,50);//draw using last global fill: red 
관련 문제