포스트(post)

12. 거리 입력받기 - (getdist)

목표

사용자로부터 숫자나 두 점으로 거리를 입력 받는 (getdist)함수를 사용 해 봅시다.



getdist

(getdist)함수는 getdistance의 줄임말로, 사용자로부터 거리를 입력받을 수 있는 함수입니다. 앞에서 사용 해 보았던 (getpoint), (getint)get시리즈 함수들과 마찬가지로, 별도의 인자 없이 단독으로 사용이 가능하긴 하지만, 사용자에게 무엇을 해야하는지 메시지를 넣어주는 것이 좋습니다.

1
(getdist "메시지")

(getdist)의 특이한점은, 사용자가 거리(숫자)를 직접 입력할 수도, 또는 사용자가 클릭 한 두 점 사이의 거리를 입력받을 수도 있다는 것입니다. (getdist)함수는 이렇게 입력받은 값을 결과값으로 반환합니다.

1
(setq dist (getdist "\n거리를 입력 해 주세요"))

그런데 이 메시지는 처음에 표시되는 메시지입니다. 따라서 만약 두 점으로 거리를 입력받게 하고싶을 경우에는 (getpoint)함수처럼 첫 번째 좌표를 인자로 넣어서, 두 번째 점을 클릭할 때의 메시지를 띄울 수도 있습니다.

1
2
3
4
(progn
	(setq pt (getpoint "\n첫 번째 점을 클릭 해 주세요"))
	(setq dist (getdist pt "\n거리 입력을 위한 두 번째 점을 클릭 해 주세요"))
)

마지막으로 실행 된 (getdist)의 반환값인 326.853이 표시되는 것을 볼 수 있습니다



사용예시

사용자로부터 원의 중심점과 두 원의 반경을 순서대로 입력받아서, 원 객체 3개를 생성 해 봅시다. 처음 중심점은 (getpoint)로 입력받고, 나머지 세 원의 반경은 (getdist)로 입력받아 보겠습니다.

1
2
3
4
5
6
7
8
9
(progn
	(setq pt (getpoint "\n원의 중심점을 클릭 해 주세요"))
	(setq radius1 (getdist pt "\n첫 번째 원의 반경을 지정 해 주세요"))
	(setq radius2 (getdist pt "\n두 번째 원의 반경을 지정 해 주세요"))
	(setq radius3 (getdist pt "\n세 번째 원의 반경을 지정 해 주세요"))
	(command "circle" pt radius1)
	(command "circle" pt radius2)
	(command "circle" pt radius3)
)

점을 클릭하여 거리를 입력 하는 예시

직접 거리를 입력 하는 예시

© IsaacGo. All rights reserved.