처리가 생성 예술과 관련하여 제공하는 가능성을 조사하고 있는데 문제가 발생했습니다.
while 루프를 사용하여 여러 베 지어 곡선을 생성하고 싶습니다. 그러나 프로그램은 일부 곡선의 일부를 건너 뛰고 다른 곡선은 제대로 그려집니다.
다음은 작동하는 예입니다.
void setup() { size(1000,500); background(#ffffff); } float[] i_x = {1,1}; float[] i_y = {1,1}; void draw() { while (i_y[0] < height) { bezier(0,i_y[0],100,height-100,width - 100,height-100,width, i_y[0]); i_y[0] = i_y[0] * 1.1; } save("bezier.jpg"); }
그리고 여기 에 출력이 있습니다. 보시다시피 전체 모양으로 그려지는 곡선은 거의 없습니다.
또한 루프에서 '깨진'곡선 중 하나를 그릴 때 제대로 작동합니다.
도움을 주시면 감사하겠습니다. Processing이 제공하는 시각적 출력으로 코딩 개념을 배우는 데 좋은 시간을 보내고 있습니다.
의도 한대로 작동합니다. 배경색을 변경할 때 어떤 일이 발생하는지보십시오 (btw 포스트, 작업 예제를 통해 디버깅 할 수 있습니다!).
영리하다면 곡선의 "안쪽"에 색상이 있음을 알 수 있습니다. 지금은 흰색입니다. 이것이 맨 위만 "보이지 않는"이유입니다. 맨 위부터 하나씩 차례로 그리는 것이므로 모든 새로운 커브는 그 위에 페인팅하여 마지막 커브를 먹지만 "커브 내부"만 먹습니다. 채우기와 배경을 더 잘 구분하기 위해 일부 색상을 적용하면 어떻게되는지 확인하십시오.
이제 문제가 분명해 졌으므로 여기에 답이 있습니다. 투명성.
while (y < height)
{
fill(0, 0, 0, 0); // this is the important line, you can keep your algo for the rest
bezier(0, y, offset, height-offset, width - offset, height-offset, width, y);
y *= 1.1;
}
결과는 다음과 같습니다.
즐기세요!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다