Script / CSS

G1sUtil.js

G1sBlogger.js

G1sNavigationList.js

G1sCode

G1sTagList

2014년 8월 31일 일요일

자전거따라>> 아라자전거길

자전거를 타기 시작한지 2달정도 지났을까?
자전거를 타는데도 어느정도 익숙해지기 시작해 슬슬 자전거 국토종주에 눈을 돌리기 시작했다.

물론, 한번의 종주할 수 있는 시간을 빼기는 힘들고, 아직 자전거도 걸음마 단계이니 여러번에 나눠서 가야 될 것 같지만....


그래서, 이번에 가기로 한 곳은 국토종주의 시작점.
아라자전거길의 시작지. 아라서해갑문.

국토종주 인증을 위해 수첩을 구입하고.
처음하는 장거리 여행에 준비해 이것저것 준비물을 챙기고..
친구와 동생과 함께 출발.


익숙한 한강길을 지나 아라자전거길을 향하여 이동.
속도보다는 페이스 유지에 신경쓰며 페달을 밟아 나간다.

어느덧 멀리 보이는 아라서해뱃길과 한강이 만나는 아라한강갑문.


좀더 폐달을 밟고가니 약간의 경사를 따라 둑으로 올라서니...


경인 아라한강갑문에 도착.


그리고. 많은 자전거 라이더들이 몰려 있는 곳에 보이는 빨간 박스.
4대강 자전거길 인증센터가 눈에 보인다.


첫 인증도장을 수첩에 찍고.
약간의 휴식후, 아라자전거길을 따라 출발.


아라뱃길을 따라 쭉 뻗은 자전거 도로가 인상적이다.


중간중간 공원 등이 조성되어 쉬어갈 수 있는 곳들도 있다.
단, 공원에서는 사람들이 많으니 자전거 속도를 줄여야 할 듯.


아라뱃길을 따라 운항하는 유람선을 지나 계속해서 나아가니 어느덧 인천.


자전거길을 따라 인천 북단을 돌아들어가니 드디어 바다가 보이기 시작한다.



마침 썰물때라 넓은 갯벌이 눈에 들어온다.
그리고 드디어 도착한 곳.


아라서해갑문 인증센터.
그리고. 도착해서 보니 이곳이 바로 정서진.
우리나라의 수도에서 정서쪽에 위치한 곳.
역시나 한쪽에 있는 인증센터에서 인증도장을 찍는다.
두번째 인증도장.


그리고, 국토종주의 시작점.
자전거길의 시작점에는 Start 선과 End 선이 나란히 위치하고 있다.


목적지에 도착한 김에 잠시 쉴 겸.
바로 옆에 있는 아라뱃길 인천여객터미널도 돌아보고,
아라뱃길의 시작점.
바다와 만나는 곳으로 가니 무수히 많은 갈매기들이 사람들을 맞는다.


뭐 던져주는 것이 없을까하고 사람 가까이 선회하는 갈매기들의 모습.

다시 돌아가는 길.

중간에 저녁을 먹고, 왔던 코스를 밟아 돌아 오던 중 잠시 여의도에 들려 3번째 인증 스탬프도 찍고 집에 도착.


총 이동 거리 : 100.226km
평균 속도 : 18km

질주본능 : ★★★★☆
업다운 : ★☆☆☆☆
경치 : ★★★☆☆
맛 : ★☆☆☆☆

2014년 8월 12일 화요일

[잉여모드] 랜덤 점의 외곽선 찾기

랜덤한 위치의 점 5000개의 가장 외곽선을 이은 도형의 넓이를 구하라.

Debug

회사에서 이야기를 나누다 박차장님이 이전에 풀었던 문제라며 내 주셨던 문제.

며칠 고민하며, 알고리즘도 짜보고 하였으나 박차장님이 풀으셨다는 방법이 가장 효율적으로 보여 박차장님의 알고리즘을 바탕으로 HTML/Javascript로 구현을 해보았다.

박차장님이 구현하였던 방법의 핵심 알고리즘은 다음과 같다.

  1. 최상단,최하단,최좌측,최우측 각 1개 씩 총 4개의 점을 구한다.
  2. 4개의 점을 기준으로 한 4분면을 만든다.
  3. 1사분면 최상단에서 최우측으로 가며 가장 상단의 점을 찾아 n번째 예비 외곽점으로 선정한다.
  4. n-2 예비외곽점에서 n 예비 외곽점과 n-1 예비 외곽점을 이은 두 선 중 외곽선을 찾는다.
  5. n 예비 외곽점이 n-1 예비외곽점 보다 외곽의 점으로 판별 될 경우 n-1 예비 외곽점을 예비 외곽점에서 제외하고 4번 과정을 반복한다.
  6. 2사분면 최우측에서 최하단으로 가며 가장 우측의 점을 찾아 n번째 예비 외곽점으로 선정하고 4~5번을 반복한다.
  7. 3사분면 최하단에서 최좌측으로 가며 가장 하단의 점을 찾아 n번째 예비 외곽점으로 선정하고 4~5번을 반복한다.
  8. 4사분면 최좌측에서 최상단으로 가며 가장 좌측의 점을 찾아 n번째 예비외곽점으로 선정하고 4~5번을 반복한다.
  9. 최종적으로 구한 외곽점을 잇는 도형의 넓이를 구한다.

이 중 9번 넓이를 구하는 부분은 생략하고 외곽선을 구하는 부분까지 구현하였다.
Debug를 체크하고 실행할 경우 하늘색선으로 각 사분면을 구분하고, 녹색 선으로 예비 외곽선에 대해 시도했던 것들을 볼 수 있다.

== 소스보기 ==
구현을 하며, 내 나름대로 추가했던 알고리즘은 외곽선 판별을 위해 사용한 벡터곱의 오른손 법칙.

z 축의 값이 0으로 고정 되어 있는 2차원 공간에서 두 백터의 벡터곱을 구할 경우 값이 양수이냐 음수이냐에 따라 우측 또는 좌측에 있는 선을 구할 수 있다는 점을 착안하여 외곽선을 판별하는데 응용하였다.

2014년 8월 9일 토요일

자전거따라>> 인왕산 수성동 계곡을 가다

주말, 집에서 뒹굴기도 그렇고, 얼마전 산 자전거를 탈까하고 주변의 갈만한 곳이 없나.. 인터넷을 뒤져보니, 서울 내 계곡이 있다는 내용의 기사를 발견하였다.

수성동 인왕산 계곡.


겸재 정선의 진경산수화에 등장하는 계곡을 복원 하였다는 것.
여름의 절정 날씨도 더운데 계곡이나 가보자라는 마음에 친구와 함께 무작정 출발하였다.


인왕산 계곡까지, 도로를 따라 다리를 건너 자전거를 타고 달리는 길.
자전거도로가 따로 되어있지 않은 길을 달리다보니 도로나 보도 사정도 좋지 않고, 오르막내리막에 달리기에는 별로 좋지 않은 듯.

그렇게 헤메고 헤메 도착한 인왕산 계곡.


계곡 바로 앞까지 아파트와 상가가 자리하고, 차를 끌고, 혹은 지하철타고와서 걸어서 찾아오는 분들이 많이 보인다.

인왕산 지도.


서울 한복판에 위치한 만큼 크지는 않은 듯, 잠시 화장실이용을 마치고 계곡 탐사에 들어간다.


생각보다 많지 않은 물.
인터넷으로 확인해 보니 안그래도 물이 많지 않은 편인데, 올해 가물어 물이 얼마 있지 않다는 것을 알 수 있었다.



생각보다 더 작은 크기에, 가뭄으로 물도 별로 없는...
있는 것이라고는 정자 하나 뿐...

아무리 서울 한복판이라지만, 그저 형태만 잡아놓고, 겸재 정선의 그림을 복원했다고 기사만 거창하게 내놓은....
이런걸 낚였다고 표현할 수 밖에는 없을 듯..

짧은 구경을 마치고,
이제는 저녁을 먹으러 이동하는 길.
저녁은 피맛골이라는 조선시대부터 유래된 먹자골목이 있다고 하여 이동을 하였다.

광화문을 지나..


조선시대 서민들이 말을 타고 행차하는 양반들을 피해 생겼다는 피마길에 서민들을 위한 음식점, 주점들이 많이 생겨나 먹자골목이 되었다고 한다.
현재는 높은 건물들이 들어서며, 당시의 골목은 사라지고, 식당, 주점들이 건물들의 1층을 차지하며 그 명맥을 잇고 있다고 한다.



피맛골을 돌다 괜찮아 보이는 식당하나를 찾아 들어가 식사를 마치고 돌아가는 길.

돌아가는 길은 길도 안좋은 직선길 보다는 청계천을 따라 내려가 한강을 타고 복귀하기로 결정.


청계천 옆으로 있는 도로를 따라, 청계천 구경을 하며, 내려오던 중.
사람이 모여있는 곳을 발견.

사람들 틈으로 고개를 내밀어 청계천을 바라보니, 청계천 위에 만들어진 무대위에 공연이 한참이다.

알고보니 매달 둘째주 토요일에 한다는 청계천 수상 패션쇼.





자전거를 멈추고, 패션쇼를 보길 잠시 이윽고 마저 복귀를 서두른다.

청계천을 지나, 한강을 타고 복귀하는 길.
비록, 인왕산 계곡은 기대했던 것에 못 미쳤지만, 평소에는 보지못 했던 서울의 색다른 모습들을 볼 수 있는 시간이었던 듯 하다.

총 이동 거리 : 54.036km
평균 속도 : 14km

질주본능 : ★☆☆☆☆
업다운 : ★★★☆☆
경치 : ★★☆☆☆
맛 : ★★☆☆☆