크리스마스 트리 만들기

8811 단어 graphicsc
왜 4월에 크리스마스 트리를 만드나요? 잘 모르겠지만 적어도 좋은 것을 원한다면 생각보다 어렵습니다. 좋은 크리스마스 트리를 만들려면 줄기, 나뭇잎, 화분, 싸구려 등 최소한 4가지 구성 요소가 있어야 합니다.



//Trunk
    colour(150, 75, 10);
    rect(378, 150, 44, 425);


트렁크는 단순하며 갈색의 직사각형입니다. RGB로 갈색을 만들려면 주황색, 빨간색에 약간의 녹색을 더해야 합니다. 그런 다음 숫자를 줄여 갈색을 만듭니다. 즉, 제가 아는 한 짙은 주황색입니다.

//Leaves
    for (int y = 500; y >= 100; y = y - 20) {
        int w = y / 2;
        int h = y / 3;
                int green = 250 - y * 200 / 500; 
        colour(0, green, 0);
        tri(400 - w / 2, y, 400 + w / 2, y, 400, y - h);
    }


잎사귀는 그렇게 단순하지 않습니다. 나무 잎사귀가 황금빛 사이프러스처럼 보이도록 몇 가지 특별한 작업을 했습니다.

삼각형으로 트리를 만들고 있습니다. 루프는 y = 500에서 y = 100까지 한 번에 20픽셀씩 거꾸로 계산합니다. 800 × 600 캔버스의 하단에 가까운 500에서 시작합니다.

y 좌표를 기준으로 삼각형의 너비 w와 높이 h를 계산하므로 삼각형이 트리의 위쪽으로 갈수록 작아집니다.

캔버스 상단에 가까워질수록 나무가 점차 밝아지도록 y 좌표를 기준으로 녹색의 양을 변경합니다. y 좌표의 범위는 100에서 500까지입니다. 먼저 500으로 나누어 대략 0과 1 사이로 만듭니다. 그런 다음 200을 곱하여 0에서 255까지의 RGB 스케일에 배치합니다. 250에서 빼서 녹색의 범위가 대략 나무 꼭대기의 연한 녹색은 250, 나무 아래쪽의 짙은 녹색은 50입니다.

//Pot
    colour(75, 37, 10);
    quad(360, 530, 440, 530, 425, 590, 375, 590);

    colour(90, 45, 12);
    rect(355, 528, 90, 10);


이제 기본 소나무가 있는데 살 곳이 없네... 그래서 코믹하게 작은 화분에 넣어보자! 우리가 해야 할 일은 냄비 몸체를 위한 더 작은 밑면이 있는 사변형을 놓고 테두리가 될 상단에 가는 직사각형을 배치하는 것입니다.

//BAUBLES
    srandom(6);
    for (int i = 0; i < 36; i++) {
        if (i % 2) {
            colour(255, 0, 0);
        } else {
            colour(255, 200, 0);
        }
        int x, y;
        int w;
        do {
            y = random() % 433 + 67;
            x = random() % 250 + 275;
            w = y / 2;
        } while (x < 400 - w/2 || x > 400 + w/2);
        circle(x, y, 10);
    }


마지막으로, 우리는 그것이 단순한 소나무가 아니라는 것을 보여주어야 합니다. 그래서 싸구려를 추가해 봅시다. 솔직히 말해서 저는 이것을 프로그래밍하지 않았고 아버지가 프로그래밍했으며 이것이 어떻게 수행되었는지 전혀 모릅니다. 그러니 아빠에게 넘겨 봅시다.

우리는 36개의 싸구려를 그리고 싶기 때문에 i = 0에서 35까지 세는 루프가 있습니다. i % 2 == 1인 홀수는 빨간색이고 짝수는 금색이지만 만들 수는 없습니다. 적어도 오늘은 아닙니다.

트리를 둘러싸는 사각형에서 "경계 상자"인 임의의 지점을 선택한 다음 해당 y 위치에서 트리의 너비를 계산합니다. 점이 트리의 왼쪽이나 오른쪽에 있으면 do ... while 루프를 사용하여 새로운 임의의 점으로 다시 시도합니다.

마지막으로 선택한 지점에 반지름이 10픽셀인 작은 원을 그립니다.

이 섹션의 맨 위에 있는 srandom(6) 호출은 seeds the random number generator 입니다. 이와 같이 상수 값을 시드하면 프로그램을 실행할 때마다 동일한 패턴의 보울이 제공됩니다. 숫자 6은 상당히 보기 좋은 패턴을 제공했습니다.

여기the full code에서 크리스마스 트리를 그립니다.

다음 게시물: Sam 작성
이전 게시물: , Thalia 작성
내용물:

좋은 웹페이지 즐겨찾기