본문 바로가기
연구관련/연구생활

어제?오늘? 한 일

by adnoctum 2011. 7. 15.


   지난 번에 작성한 글에서 보였던, 직사각형에 데이터를 표현하는 것을 더해서, 이번에는 원 안에 표시하는 것을 했다. 그 때는 다소 단순한 GML 파일을 읽어 들이는 것을 작성했었는데, 알고 보니 WikiPathway에서 gpml 파일을 제공해 주어서 이 파일을 읽는 함수를 작성했다. 아직 많이 부족하긴 한데, 우선 중요한 것 순서대로 해 나아가고 있다.



위가 그 한 예. 어제는 저 원으로 표시하도록 했는데 (parsing 하는 것은 그 전날 대강 해 놨었다), 문제는 node 가 겹치는 부분이 생긴다는 것이다. 밤새도록 어떻게 하면 노드가 겹치지 않게 할 수 있을까, 생각해 보았지만, 마땅한 것이 생각나지 않는다. 몇 가지 테스트 해 보았지만 마음에 들지 않는다. 음... 이 다음에는 화살표를 처리해야 한다. 지금은 선 끝에 화살표 표시가 없지만 원래는 있는 거다. ㅋㅋ 그거 하려면 또 sin, cos 이 나오겠군. 저 원 안에다 부채꼴로 표시하는 것에도 sin, cos, 그리고 bit 연산인 AND, OR이 주루룩 나왔다. 프로그래머에게 수학이 필요한 이유를, 이렇게 직접적으로 수학이 쓰이는 것을 예로 드는 것은 별로 안 좋은 것 같은데, 하여튼 그랬다. 그 부분 코드.





동그라미가 그려질 때 원본 이미지에 있던 배경이 그대로 살아야 하기 때문에 약간 복잡해 졌다, ㅋ.
관건은 제일 마지막 3줄의, MERGEPAINT, SRCPAINT, SRCAND. 보통은 SRCCOPY만 썼었는데, ㅋ.


parsing 하기 위해서, 오랜만에 boost 를 설치 시도. 아니, 그런데, 컴파일 에러가 수두룩하게 뜬다. 뭐지... 몇 시간 고생하다, 결국 bat 파일 하나 실행시키고 하니까 문제 없이 된다 >.<""" 뭐야, 역시나, 밤에는 잠을 자야 한다니까, -.-;;; 그런데 의외로 속도가 안 나와서, regular expression 때문인가, 싶었는데, 아무리 생각해도 이건 너무 오래 걸린다. 코드를 다시 살펴 보니, ㅋㅋ, map 으로 쓸 수 있는 부분을 vector에 넣고 매번 검색하게 해 놓았다. 그 부분을 바꾸고, double buffering 으로 WM_PAINT 처리하고, 등등 자잘한 부분들은 끝내긴 했는데, 아--, 저놈의 노드 겹치는 문제가 제일 골치다. 아, 화면 확대/축소를 아직 안 했군. ㅋ, 하여튼 GUI를 하게 되면 이렇게 간단하지만 귀찮은 작업들이 너무 많다.


ㅎ, 이렇게 또 밤을 꼬박 샜다, ㅋ. 이건, 뭐, 시차의 연금술사도 아니고,,,

'연구관련 > 연구생활' 카테고리의 다른 글

컴퓨터 접붙이기?  (0) 2011.08.02
디버깅은 역시나 힘들다  (0) 2011.07.21
마흐 밴드인가?  (0) 2011.07.08
연구는, 힘들다  (0) 2011.07.01
기다리지 말라고  (0) 2011.06.03