viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c24500d13e69cabd22f957438

(미리보기 방지)


안녕하세요, 누리입니다.


지금까지 제가 자작 문제를 몇 개 올려 왔었습니다.


요즘 문제는 그냥 평범한 문제 같이 생기도록 만들고 있는데, 옛날 글을 보시면 전에는 손으로 문제를 다 만들던 적이 있었다는 것을 아실 겁니다.

(예시: https://gall.dcinside.com/m/physics2/2134)


옛날에는 저렇게 만들었었는데 과연 지금의 저는 어떻게 그림을 그리고 있을까요?에 대해 한 번 적어 보겠습니다.


---------------


일단 예시는 방금 올린 '자작 문제 5' 문제이기에, 스포일러가 있을 수 있습니다.

(답이 스포일러)


문제: https://gall.dcinside.com/m/physics2/6841




















1. 먼저 손으로 문제를 만듭니다.


viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c73560c43b395f9d72f224398


이건 사실 문제 만드시는 모든 분들이 그럴 거라고 봅니다.


처음부터 '문제를 이렇게 내야겠다', '그림은 이렇게 그려야겠다'를 머리 속으로만 만드시는 분들은 없겠죠. 그렇겠죠..?


문제를 만들 때 중요한 점이라 하면, 조건을 더도 말고 덜도 말고 딱 필요한 만큼만 주도록 만드는 거겠죠.


더 주면 좀 난이도가 쉬워지고, 덜 주면 문제가 성립이 안되니까요.


이때, 그림도 어떻게 그릴지 생각해 줍니다.




2. 그림 PVT 파일을 만듭니다.


viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c75535b44e59cf8da2f257e66


'PVT 파일이 뭐지?' 하고 찾아 보시면, 아무 것도 안 나올 겁니다.

(아니면 나와도 이상한 거겠죠)


PVT 파일은 제가 그냥 이름 붙인 파일로, 사실상 벡터 형식의 그림 파일로 보시면 됩니다.

(근데 문제 그림에 조금 최적화 돼 있습니다)


텍스트로 적혀있고, 각 도형들의 위치 같은 게 적혀있는 형태죠.


사실 파일을 만들 때에는 저렇게 가독성 0으로 작성하지는 않는데, 일부러 복잡하게 보일려고 저렇게 뒀습ㄴ...

(이러면 용량이 줄어들기는 하지만 겨우 몇 십 바이트 줄어드니..)




3. 저 파일을 BMP 파일로 변환합니다.


viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c27565910e59dacd42fcae7ea


PVT 파일만으로는 써먹을 수가 없으니 진짜 그림 파일로 바꿔야겠죠?


가장 간단한 비트맵 파일 형식인 BMP 파일로 바꿔 줍니다.


직접 짠 코드로 말이죠.

(PVT 파일 형식 자체를 제가 만들었으니 이걸 변환할 프로그램이 실제로 있을리가 없잖아요?)


이 코드는 현재 직선, 포물선, 원을 원하는 두께의 실선이나 점선의 형태로 그릴 수 있고, 점도 원하는 크기로 찍을 수 있습니다.


타원도 코드 짜야 되는데 귀찮아서 나중에 필요해질 때까지 미루고 있습니다.




위의 그 PVT 파일을 BMP 파일로 바꾸면 다음과 같습니다.


viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c24010415b59cfad42f5fe090

(용량 줄이려고 PNG 파일로 바꿨습니다)




4. 그림판으로 마무리 작업을 합니다.


viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c26565841b191aad62fd8e853


이제 거의 끝났죠?


그림판으로 필요 없는 부분은 지우고, 색도 입혀 줍니다.


문자도 적을 수 있겠네요.


이런 문자들은 제가 미리 아래처럼 모아둔 것을 사용합니다.


viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c72035f15e7c3ffd72ff1e8bd


위의 것들을 적절한 위치에 붙여넣는 거죠.


그러면 완성입니다.


viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c20505816b492abd72f2b44b0


이렇게 문제 그림들을 모아둡니다.


이후 한컴으로 그림을 가지고 작업하면 끝입니다.


viewimage.php?id=3db5c935ecd12bf4&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12eedc0c89e34254ebff72add717bf3c9f8b9e542da056c2241609c74570443e394fdd22f5c6e8d


---------------


사실 처음 그림을 만들 때에는 이렇게 안 만들고, 모든 작업을 그림판으로만 했습니다.


https://gall.dcinside.com/m/physics2/3511


이 문제가 그림판으로만 그림을 그린 문제입니다.


근데 이거 하나 만드는 게 너무 귀찮아서, 값만 형식대로 넣어서 파일을 만들어 주면 알아서 그림을 거의 다 그려주는 코드를 짜게 된 거죠.

(원래 컴퓨터가 그러라고 있는 거잖아요?)




다른 분들은 문제 만들 때 뭐로 만드는지 궁금하네요.

(저보단 정상적이겠죠?)