히농의 잡합다식

SUAPC 2021 : 기지국 업그레이드 이미지 제작 후기 본문

프로그래밍

SUAPC 2021 : 기지국 업그레이드 이미지 제작 후기

히노히에 2021. 8. 29. 17:07

천재 과학자 토끼가 개발한 2세대 통신 방법이 뭔가 수상하다.

올해 여름에 있었던 검수 러쉬의 마지막, SUAPC 2021 대회가 무사히 끝났습니다.

본 대회 / Open Contest 모두 통틀어서 모든 문제가 한번씩 풀렸고, 전부 다 푼 사람이 생기지 않았으므로

아주 아름다운 "좌" 세트가 되었습니다.

 

이 대회에서 개인적으로 마음에 들었던 문제가 2 개가 있었습니다.

하나는 H번 '재활용 캠페인' 문제로...

이에 대한 설명으로는 저의 트윗 링크로 대체하겠습니다.

https://twitter.com/pichulia/status/1431843657301172228

 

pichulia 또는 히농 (Hong EunKi) on Twitter

“헌저짤 https://t.co/uSvrLYGsN3”

twitter.com

 

다른 하나는 G번 '기지국 업그레이드' 문제입니다.

이 문제는 문제의 풀이도 아주 재미있기도 하지만...

결정적으로 이 문제의 그림을 제가 그렸기 때문에 마음에 들었습니다.


 

이 문제에서 가장 고생을 많이 했던 부분은 "가독성" 입니다.

 

* 일차원 수평선에 각각의 좌표에 "기지국" 이 있어야하고.

* "2세대로 업그레이드 된 기지국" 과 "업그레이드 되지 않은 기지국"을 구분할 수 있어야하고,

* "1세대 통신 범위"를 나타내는 표시자가 있어야하고

* "2세대 통신 범위"를 나타내는 표시자가 있어야하고,

* 각각의 통신 범위는 서로 교차될 수 있고, 교차되면서도 동시에 각각의 통신 범위를 구분할 수 있어야하고,

* 문제에서 설명한 두 제약조건을 만족하지 않는 케이스를 묘사할 수 있어야하고,

 -  1세대 통신 방법으로 통신을 할 수 있을 정도로 가까이 있으면, 해당 위치에서 전파 간섭이 일어난다.

 - 기존 1세대 통신 방법을 사용하여 통신을 할 수 있었던 위치에서 2세대 통신 방법을 사용하여 통신할 수 있어야 한다.

 

이 모든 것을 표현할 수 있으면서 문제를 읽는 사람에게 도움을 주고, 방해가 되지 않는 이미지가 필요했습니다.

 

 

이런 고민의 과정을 통해 최초로 만들어진 이미지는 아래와 같습니다.

Prototype

 

"1세대 통신 범위" 를 보라색으로,

"2세대 통신 범위" 를 녹색으로 색을 지정해놓고,

각각의 타워에 있는 스피커(?)의 색을 통해서 기지국의 업그레이드 여부를 구분할 수 있도록 했습니다.

 

그리고 그와 더불어 좀 더 업그레이드 된 것처럼 만들기 위해 2세대 기지국 뒤에 후광효과를 넣었습니다.

각각의 통신범위는 기지국을 중심으로 하는 반투명한 오각형 모양으로 만들었습니다.

 

이렇게 만들어두니 통신 범위들끼리 겹쳐보여서 난리도 아니였고,

결국 2세대 통신 범위를 살짝 위로 올렸습니다.

그리고 그와 동시에 후광효과도 같이 올라가버렸고ㅋㅋㅋㅋㅋ

약간 '사우론의 눈' 같기도 하고 해서 그대로 정착시켜서 프로토타입이 완성되었습니다.

 

문제 출제자의 피드백을 적극 반영

 

그렇게 만들어진 프로토타입 이미지를 1차적으로 공유했고...

출제자의 의견을 적극 반영함으로 인해서 문제가 더욱 기괴해졌습니다.

 

전파 간섭을 나타내는 이미지
하위호환성을 만족하지 않는 업그레이드 이미지

그 다음으로는 각각의 제약사항을 묘사할 수 있었어야 했습니다.

 

전파 간섭이 일어나는 상황에 대해서, |Xi - Xj| = Hi + Hj 인 상황이 가장 사람들이 헷갈리기 쉬운 상황이라고 판단했고,

이러한 상황이 되도록 이미지를 하나 만들었습니다.

(여담으로 이 때 정말 전파끼리 '간섭'이 일어나는 느낌을 주기 위해서 각 통신범위의 오각형 크기를 좌우로 살짝 키웠습니다. 이렇게 되면 통신 범위가 겹치는 경우 색이 좀 더 진해질 것입니다.)

 

또 하나는 기존의 1세대 통신 범위를 커버하지 못하는 상황을 표현할 수 있었어야했고,

이것은 그냥 딱 한 칸을 덮지 못도록 데이터를 잘 만들고 그대로 그리면 되었기에 그나마 편했습니다.

 

 

1세대 통신 범위는 흔적으로만 남겨두었다.

 

이후 1세대 통신 범위가 그림에서 오각형 형태로 전부 다 나오지 않아도 

표현하고 싶은 정보를 모두 표현할 수 있다고 판단하였고...

 

아주 중요한 정보인 "1세대 통신 범위" 자체는 수직선 위에서만 표시하고,

통신 범위의 양 끝으로 점선을 추가하는 것으로 불필요한 이미지들을 제거해

그림을 읽는 사람에게 혼란을 줄만한 요소를 줄여나갔습니다.

 

 

뭐...저번 UCPC 2021 후기글도 있었고...이 글이 '프로그래밍' 태그에 들어간 것을 보고 눈치채셨을 수도 있겠지만..

모든 리소스는 그림판과 소스코드로 제작되었습니다.ㅋㅋㅋㅋ

 

재연에 필요한 리소스 이미지와, 코드는 아래와 같습니다.

errormark.png
golden.png
tower.png
main.cpp
0.02MB

 

 

이렇게하여 옥토끼가 지배하게 된 세상이 탄생하였습니다.

 

개인적으로 이미지 제작에 고민을 많이 한 문제이고, 결과물도 만족스럽게 나와서 기분이 좋습니다.

이 영광을 일루미나티에게 바칩니다.. 할렐루야

Comments