프로그램
캐드 분류

리습 각도 문의 드립니다.

컨텐츠 정보

  • 82 조회
  • 6 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

안녕하세요. 리습 각도 문의 드립니다.

그림에서 p1 p2 사이의 각도를 a1이라 하면 (setq a1 ( angle p1 p2)) 이건 알겠습니다.

그런데. p1 p2 의 직선에서 p1 기준으로 직각인 p3의 각도를 a2라고 하면

제 짧은 지식으로 (setq a2 (polar a1 ( – (/ pi 2))) 하고 (setq a2 (+ a1 (/ pi 2))) 이렇게 해봤는데, 안되더라고요.

이걸 어떻게 표현하는지 알려주시면 감사하겠습니다.

구글 번역 돌려가면 계속 찾아보는데, 도저히 제 실력으로는 못찼겠네요. .

관련자료

댓글 6

penpen07님의 댓글

설명이 불분명해서 정확히 이해한지는 모르겠으나, 첨부 이미지에서 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)))로 계산하면 됩니다.angle.jpg

달려라달려라잉님의 댓글

제가 원하는 답이 아닌듯합니다. 혹시나 이래저래 응용해봤는데, 안되네요.

고개발님의 댓글

삼각함수네요~ 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))

여분필드1 여분필드2 여분필드3
전체 7,337 / 7 페이지
번호
제목
이름
알림 0