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를 넣어 사각형을 그립니다.