PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2017/06/29 19:29:42
Name 삼신
Subject [질문] 두 점 간의 각도 구하는 방법
쉽게 예를 들어 A (0,0) 과 B (10,10) 두 점간의 각도를 구하고 싶습니다. 일단 답은 45도죠...

근데 조건이 있습니다.
함수도 못쓰고... 정수 연산만 사용해야 합니다. (C++ int 연산자로만 계산해야함.)
atan 함수를 사용하면 두 좌표간 각도를 쉽게 계산 할수 있으나 함수는 사용 불가입니다. 당연히 정수로 만들어진 함수는 가능하구요.
성능을 조금 떨어뜨려서 floating 연산을 int 연산으로 모델링 가능하다면... 형변환 방법도 괜찮습니다.

혹시 아시는 분은 답변 부탁드립니다.


통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
17/06/29 19:52
수정 아이콘
두점과 x축에 평행한 직선 사이의 각도를 구하고 싶으신 거죠?
필요하신 resolution만큼 tangent table을 만드신 후에 search 하시는 편이 가장 쉬울 것 같습니다.
즉 tan(x)에 적당히 큰 수 N을 곱해서 integer로 floor시킨 배열을 미리 저장해두시고, (delta y) * N / (delta x)를 가지고 search를 (필요하다면 binary search를) 하는거죠.
이과감성
17/06/29 21:00
수정 아이콘
아크탄젠트 테일러전개.. 하면되지않나요?
17/06/29 21:16
수정 아이콘
일단 두 점을 지나는 직선을 함수로 표현했을 때, 기울기 값을 알 수 있습니다(delta y / delta x, 주어진 예에서는 10/10 = 1). 그 값이 x축과 두 점을 지나는 직선이 이루는 각도이기 때문에, tan(theta)를 Taylor expansion한 함수 f(theta)로 표현하고 f(theta)=기울기 에 대한 방정식을 수치적으로 풀면 구할 수 있겠네요. 참고로 tan의 Taylor expansion은 wiki를 찾아보시면 쉽게 구할 수 있습니다. 아니면 sin, cos을 가지고 구하셔도 되고요.
Supervenience
17/06/29 21:31
수정 아이콘
저라면 이런 가혹한 조건이라면 그냥 hodduc님이 말씀하신대로 룩업테이블 만들어서 쓰겠습니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
공지 댓글잠금 [질문] 통합 규정(2019.11.8. 개정) jjohny=쿠마 19/11/08 100103
공지 [질문] [삭제예정] 카테고리가 생겼습니다. [9] 유스티스 18/05/08 120955
공지 [질문] 성인 정보를 포함하는 글에 대한 공지입니다 [38] OrBef 16/05/03 168754
공지 [질문] 19금 질문은 되도록 자제해주십시오 [8] OrBef 15/10/28 203059
공지 [질문] 통합 공지사항 + 질문 게시판 이용에 관하여. [22] 항즐이 08/07/22 252839
176137 [질문] 연금보험 관련해서 질문드립니다 [3] 장마의이름209 24/05/08 209
176136 [질문] 그래픽 카드 소음 질문(아래 질문글 보고 저도 질문드립니다) 아지노스177 24/05/08 177
176135 [질문] 네이버가 라인재팬 지분을 쿠팡과 교환하면 득일까요? 실일까요? [4] VictoryFood482 24/05/08 482
176134 [질문] 올해 소멸예정인 항공사 마일리지는 어디 쓰는게 이득인가요? [1] 같이걸을까251 24/05/08 251
176132 [질문] 해외 여행시, 카드가 낫나요? 환전해가는게 낫나요? [5] LG의심장박용택463 24/05/08 463
176131 [질문] 발치 치아교정 질문드립니다 [16] 이오르다체949 24/05/08 949
176130 [질문] 단톡방에 바람 피는거 올리는 심리는 뭘까요? [35] 박수3371 24/05/08 3371
176129 [질문] 태블릿을 보조모니터로 쓰면 성능나쁠까요? [11] 스물다섯대째뺨1308 24/05/08 1308
176128 [질문] 핼로우톡 언어교환 해보신분에게 질문 [4] 유지태.980 24/05/08 980
176127 [질문] 인도-태평양 지역에 유럽의 해군력 투사가 가능한가요? [4] Garnett211037 24/05/08 1037
176126 [질문] 여러분들이 지금껏 본 최고의 반전 작품이 무엇인가요? [48] 라리1644 24/05/08 1644
176125 [질문] FC24 게임 질문(위닝 마스터리그 같은 플레이모드가 있는지) [5] Everlas455 24/05/08 455
176124 [질문] [헬스] 스쿼트, 데드 중량에 대한 질문 [18] 시무룩646 24/05/08 646
176123 [질문] 최근 기브온 많이 듣고 있습니다. [1] 임작가519 24/05/08 519
176122 [질문] 살림 선배님들 건조기 고민입니다 [10] 골드쉽1548 24/05/08 1548
176121 [질문] 너무 짙은 전면유리 썬팅 제거해야 할까요? [24] VictoryFood1428 24/05/08 1428
176120 [질문] 잘 모르는분야에 대해 일침넣는 성향은 뭔가요? [13] 차이1667 24/05/08 1667
176119 [질문] 어버이날 시즌에 양가 모두 방문하시나요? [14] 합격기원1627 24/05/07 1627
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로