5. 좌표 입력받기 2 - (getcorner)
목표
좌표를 입력받는 또 다른 함수인 (getcorner)를 사용 해 봅시다.
getcorner
(getcorner)함수는 (getpoint)함수와 동일하게 사용자가 입력한 점의 좌표를 얻을 수 있는 함수입니다. 한 가지 차이점이 있다면, (getpoint)함수는 단독으로 사용할 수 있지만, (getcorner)함수는 인자로 시작점(기준점)이 되는 좌표가 반드시 필요하다는 점입니다.
1
(getcorner (getpoint))
(getcorner)함수를 실행하게 되면, 마치 rectangle 사각형을 그릴 때 처럼, 입력받은 좌표로부터 마우스 위치까지 사각형 영역이 보이게 됩니다. 다만 실제 사각형을 그리는 것은 아니며, (getpoint)와 마찬가지로 클릭한 점의 좌표를 반환 해 줍니다. 
메시지 추가하기
(getcorner)함수도 (getpoint)함수와 마찬가지로 사용자에게 보여 줄 메시지를 추가할 수 있습니다.
1
(getcorner (getpoint) "\n두 번째 점 클릭!!!")
getpoint? getcorner?
그럼 두 함수 중 무엇을 사용하는 것이 좋을까요? 상황에 따라서 더 적절하다고 판단되는 것을 사용하시면 됩니다.
선, 폴리선 등을 그리거나, 거리 등을 나타내고 싶을 때는 직선을 보여주는 (getpoint)함수를, 사각형을 그리거나 영역을 나타내고 싶을 때는 (getcorner)함수를 사용하는 것이 사용자에게 무슨 작업을 하는지 좀 더 직관적으로 나타내기에 좋습니다.
사각형 그려보기
(getpoint), (getcorner), (command) 함수를 이용해서 사각형을 그려봅시다.
1
2
3
4
5
(progn
(setq point1 (getpoint "\n사각형의 첫 번째 점을 클릭 해 주세요"))
(setq point2 (getcorner point1 "\n사각형의 두 번째 점을 클릭 해 주세요"))
(command "rectangle" point1 point2)
)
(progn)함수는 특별히 신경쓰지 않으셔도 됩니다. 명령어창에 리습코드를 붙여넣을 때는, 한 번에 한 개의 함수만 실행할 수 있습니다.(progn)함수는 여러개의 함수들을 하나로 묶어주는 역할을 하는데요. 나중에 직접 함수를 만드는 방법을 배우기 전까지는, 실습의 용이성을 위해서 나머지 함수들을(progn)함수로 감싸두겠습니다.
순서
(getpoint)함수로 좌표(시작점)을 얻어서 point1 변수에 저장합니다.- point1 을 인자로 넣은
(getcorner)함수로 좌표(끝점)를 얻어서 point2 변수에 저장합니다. (command)함수로,rectangle명령어에 필요한 시작점과 끝점에 각각 point1과 point2를 넣어 사각형을 그립니다.
