블로그
of asciiVideoExample 분석 본문
여기서 중요한 부분은 float lightness와 int character 부분이다.
float lightness
float lightness = pixelsRef.getColor(i,j).getLightness();
여기서는 메서드체이닝을 통해 값을 저장한다.
메서드 체이닝은 메서드가 객체를 반환하게 되면, 메서드의 반환 값인 객체를 통해 또 다른 함수를 호출할 수 있는 것.
여기서는 pixelsRef.getColor(i, j)를 통해 color 객체를 반환받고, color객체에서 getLightness()를 통하여 float 값을 반환받는다.
결과적으로 픽셀 rgb값의 평균값을 저장하게 된다.
int character
character는 문자 하나를 의미한다.
여기서 캐릭터는 아스키 캐릭터 어레이의 배열의 인덱스를 지정하는 코드로, 하나하나 살펴본다면
우선 powf를 통해 작은 값과 큰 값의 간격을 벌린다.
여러 가지 값들 사이에서 간격을 넓히는 방법은 여러 가지가 있는데 가장 쉬운 방법이 제곱을 하고, 값을 다시 조정하는 방식이 있다.
따라서 powf(소수 거듭제곱)을 통해 lightness, 즉 카메라의 밝은 값과 어두운 값의 간격을 넓혀서 어두운 곳은 낮은 인덱스의 값에 저장된 " " (비어있는) 문자열 이 들어오고, 밝은 곳에는 "A" , "B" 등의 랜덤 한 문자열이 들어오게 한다.
마지막으로 asciiCharacters.size()를 곱하여 값이 배열 사이즈를 기준으로 한다.
예제 분석으로 얻은 것
1. pow를 통해 값 사이의 간격을 넓히는 방법.
2. 메서드 체이닝
3. 빈 문자열로 어두움을 표현하는 아이디어 활용
'openFrameworks' 카테고리의 다른 글
openFrameworks 이미지에 대해 (0) | 2021.11.17 |
---|---|
openFrameworks 에서의 진동(회전) (0) | 2021.11.12 |
"ofImage"에 대하여 (0) | 2021.10.20 |
openFrameworks 에서 소리신호를 받는 방법 (1) | 2021.10.10 |
OF MeshFromCamera 예제 분석 (update) (0) | 2021.10.04 |