Silverback9

#야생으로

Creative Coding 독학 제155일 2024년08월29일(목)

오늘은 Wolfram Rule [0~255]에 따라 그려지는 멋진 그림의 씨앗을 만들어 보겠습니다~^^*

네~^^* 제1세대를 만드는 거예요~^^*

태초에 씨앗 세포가 하나 있었는데~~^^*

그 세포가 세대를 거듭해 나가며 아주 멋진 풍경으로~~^^*

제1세대! 씨앗 세포를 표현하는 코드를 만들어 봅시다~~!!!

하나. p5.js 캔버스의 너비를 씨앗 세포의 너비로 나누어요.

그러면 씨앗 세포의 너비와 동일한 세포 공간이 화면 위에 한칸 한칸 한 줄로 주~욱 생겨나겠지요^^*

두울. 세포들의 총갯수를 2로 나누어 몫의 정수부분을 챙겨요.

세엣. 일련의 세포들 중 그 정수 번째의 세포 공간을 찾아 색칠을 해요.

색칠한 세포공간이 바로 씨앗 세포예요~~^^*

네~^^* 씨앗 세포가 세포 공간들 속 가운데에 심어지겠네요~^^*

let cells = []; //세포들의 배열입니다~
let w = 16; //세포 너비입니다~
let y = 0; //화면 제일 위에 그려볼게요~

function setup(){
    createCanvas(400, 400);
    
    let total = width / w; 
    //화면 너비를 세포 너비로 나눈 세포 총갯수를 변수 total에 저장합니다~.  
    
    for(let i = 0; i < total; i++) {   
        cells[i] = 0;
    //모든 세포에게 0을 저장합니다.    
         
    }
    
    cells[floor(total/2)] = 1;
    //세포 총갯수 total을 2로 나누고, 정수 부분만 취한 후, 세포들 중 그 정수번째의 세포에게 1을 저장합니다. 
    //한 가운데 있는 세포만 1의 값을 가지게 되겠네요~~
    
    background(255);
    //흰 색 도화지를 펼칩시다~~^^*
}

function draw(){
    for(i = 0; i < cells.length ; i++){
        
        let x = i * w;
        // 해당 세포의 순번 곱하기 너비가 x 좌표가 됩니다.
        // 모든 세포들에 대해~ 차례로~ x 좌표를 세포 너비만큼 이동한 효과~
        stroke(0);
        fill(255 - cells[i]*255);
        // 0을 저장한 세포는 fill(255 - 0*255 = 255) 즉 흰색으로 칠해지고~
        // 1을 저장한 세포는 fill(255 - 1*255 = 0) 즉 검은색으로 칠해지고~
        // 한가운데 검은 색의 씨앗 세포가 표현되겠네요
        
        square(x, y, w);
        //화면 첫째 줄(y = 0)에 가로세로 16 픽셀의 사각형이~
    }
}  
    

네~~ 이제 씨앗을 심으러 가 볼까요~~^^* 땅을 콕콕 팔 막대 하나, 물 뿌릴 양동이 하나, 씨앗 한 개를 챙겨서, 황무지로 나아가 봅시다~~^^*

우리가 심은 작은 씨앗 하나가 무럭무럭 자라서, 세대를 거듭해 나가며 멋진 숲이 되면 좋겠어요~^^*

피와 살을 가진 우리가, 0과 1의 세계에 사는 컴퓨터와 함께 만들어 갈 아름다운 숲!

그 씨앗을 오늘 저와 함께 심어 주셔서 감사합니다~^^*

오늘도 멋진 아침! 멋진 하루 보내시구요~^^*

내일 우리 또 만나서~~^^* Wolfram Rule [0 ~255]에 따라 이 하나의 씨앗이 싹 틔우는 과정을 함께 공부할까요~~^^*

넵~~!! 꿈은 이루어 집니다~~!!

댓글 남기기