안녕하세요. 리습 각도 문의 드립니다.
그림에서 p1 p2 사이의 각도를 a1이라 하면 (setq a1 ( angle p1 p2)) 이건 알겠습니다.
그런데. p1 p2 의 직선에서 p1 기준으로 직각인 p3의 각도를 a2라고 하면
제 짧은 지식으로 (setq a2 (polar a1 ( – (/ pi 2))) 하고 (setq a2 (+ a1 (/ pi 2))) 이렇게 해봤는데, 안되더라고요.
이걸 어떻게 표현하는지 알려주시면 감사하겠습니다.
구글 번역 돌려가면 계속 찾아보는데, 도저히 제 실력으로는 못찼겠네요. .
삼각함수네요~ x, y 100, 100일때
(defun c:angle ()
(setq x 100.0 y 100.0)
(setq p1 (list 0 0 ) p2 (list x y))
(setq angra (angle p1 p2))
(setq angdo (angtos angra 0 2))
(prompt “n 라디안 각도” ) (prin1 angra)
(prompt “n 각도 문자값” ) (prin1 angdo)
(prompt “n 각도 숫자값” ) (prin1 (atof angdo))
(princ))
제가 원하는 답이 아닌듯합니다. 혹시나 이래저래 응용해봤는데, 안되네요.
머쓱…..^^;
하지만, 답변 정말 고맙습니다. 오늘도 좋은 하루 되세요.
설명이 불분명해서 정확히 이해한지는 모르겠으나, 첨부 이미지에서 p1-p3을 잇는 선분의 각도를 구하고 싶다는 내용으로 이해했습니다.
polar라는 함수는 특정 점에서 일정 각도로, 일정 거리만큼 떨어진 점의 좌표를 구하는 함수입니다. (polar pt ang dist)의 구조로 사용해야 하며, 생략할 수 있는 변수는 없습니다. 이는 도움말에 나오는 내용이니, 리습을 공부할 생각이 있다면 도움말을 읽어보세요.
(polar (getpoint) (/ pi 2) 10) 이런 양식으로 사용하는 함수입니다.
구하고자 하는 값은 각도이기 때문에 polar는 사용할 필요가 없어요.
오토캐드에서 각도는 X축의 양의 방향을 기준삼아 시계 반대 방향(Counter ClockWise)으로 측정합니다. p1-p2를 잇는 선분과 p2-p1을 잇는 선분은 각도가 다르죠. 측정하는 방향이 다르기 때문입니다.
p1-p3의 선분은 p1-p2 선분의 각도에서 90도를 뺀 값이므로, (setq a2 (- a1 (/ pi 2)))로 계산하면 됩니다.
해결되었습니다. 감사합니다. ^^