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님이 말씀하신대로 룩업테이블 만들어서 쓰겠습니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
105000 [질문] 고전게임 이름 찾고 있습니다. [2] wook982473 17/06/30 2473
104999 [질문] 청문회에서 송영무 후보의 비리 밝혀진 것 있나요? [14] 바람이분다2587 17/06/30 2587
104998 [질문] 부팅 로고 해상도변경 질문입니다. 교자만두2696 17/06/30 2696
104997 [질문] [조조전온라인] 노병 선택부탁드립니다 [5] Paul Pogba2154 17/06/30 2154
104996 [질문] 아이패드 10.5 구매 Wi-Fi vs. LTE 선택은? [15] 스타듀밸리5549 17/06/30 5549
104995 [질문] 제 삶에 대한 평가와 조언 부탁드립니다. [104] 또하자6780 17/06/30 6780
104994 [질문] 저그 초반 빌드 질문입니다. [8] 완성형폭풍저그1662 17/06/30 1662
104993 [질문] 빠지 추천 부탁드립니다. bymi1651 17/06/30 1651
104992 [질문] 차량 구입관련 질문입니다. [21] IcedAmericano2545 17/06/30 2545
104991 [질문] 네이버 도서 판타지/무협 추천 부탁드립니다. [4] 과일2964 17/06/30 2964
104990 [질문] 뮤지컬 등 좌석 질문입니다 [4] 회전목마1867 17/06/30 1867
104988 [질문] 복싱 배울때 사용할 운동화 추천 부탁드립니다. [2] 쪼아저씨3689 17/06/30 3689
104986 [질문] 제주도 숙소 잡는데 초보라 질문드립니다. [8] 삭제됨2292 17/06/30 2292
104985 [질문] 철권7 스팀 하시는 분 질문이요. [9] 공개무시금지6670 17/06/30 6670
104984 [질문] 인터넷 사이트 연결이 되지 않습니다. [1] rheqkfh1442 17/06/30 1442
104983 [질문] 짧은 2박3일 일본여행 or 국내여행 [13] 언니네 이발관3148 17/06/30 3148
104982 [질문] 정봉주 전의원 사면될까요? [6] 이홍기3407 17/06/29 3407
104981 [질문] 마우스피스 어떻게 고르고 사야하나요? [5] 노래하는몽상가2625 17/06/29 2625
104980 [질문] 이것이 서울이다!!!를 보여주는 디저트 어떤 게 있을까요? [19] 개미핥기2975 17/06/29 2975
104979 [질문] 유럽여행 동선 ..항공 in / out 질문드려요 [5] 피스~2166 17/06/29 2166
104978 [질문] 피부 좀 봐주세요... (사진첨부) [10] 히스조커3152 17/06/29 3152
104977 [질문] 맥주 한캔 + 수면제 괜찮나요. [4] 가렌3699 17/06/29 3699
104976 [질문] 내 컴퓨터... 어떻게 스펙업 하는게 괜찮을까요? [23] Mindow4407 17/06/29 4407
목록 이전 다음
댓글

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