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님이 말씀하신대로 룩업테이블 만들어서 쓰겠습니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
105074 [질문] 익스플로러 업데이트가 안됩니다. ㅜㅜ [3] 레가르2107 17/07/01 2107
105072 [질문] 노트북 와이파이 연결문제 질문드립니다 [1] 폴라니2319 17/07/01 2319
105071 [질문] 디아블로 3 시작해도 될까요? [19] 별이돌이2400 17/07/01 2400
105070 [질문] PC 플랫폼 MMORPG 추천 해주세요. [10] 어제내린비2426 17/07/01 2426
105069 [질문] 남자장화브랜드 추천부탁드립니다. Cherish2000 17/07/01 2000
105068 [질문] 청약저축(통장?)으로 청약해보신 분 계신가요...? [2] nexon2287 17/07/01 2287
105067 [질문] 빨콩(노트북) 진짜 좋은가요? [8] 캐리커쳐4724 17/07/01 4724
105066 [질문] 팔라독 질문입니다. (안드버전) [1] 교자만두1527 17/07/01 1527
105065 [질문] 간만에 컴터좀 살려고 견적을 뽑았는데 한번 봐주시면 감사하겠습니다. [3] 이르2375 17/07/01 2375
105064 [질문] 배틀그라운드를 잘하고 싶습니다 [16] 노틸러스3420 17/07/01 3420
105062 [질문] 해외에서 네이버 로그인 시도가 자꾸들어옵니다.. [6] coolasice2012 17/07/01 2012
105061 [질문] [스타1]그래픽 카드 질문입니다. [1] 정체성없이정체된정체2202 17/07/01 2202
105060 [질문] 엑셀 메뉴 비활성화 질문입니다. 서낙도3338 17/07/01 3338
105059 [질문] 7인승 suv 고민 [3] mix.up3348 17/07/01 3348
105058 [질문] 경찰공무원 시험 질문입니다. [3] 띠꾸2744 17/07/01 2744
105057 [질문] 어금니에 금이 갔습니다. [1] 외국어의 달인1494 17/07/01 1494
105056 [질문] [LOL] 레넥톤 질문입니다. [5] 아름답고큽니다2319 17/07/01 2319
105055 [질문] 메인보드에 같이온 시디 설치해야하나요? [2] 강군이1952 17/07/01 1952
105054 [질문] 배달음식 시킬 때 카드결제 할 것이라 꼭 말해야 하나요? [24] ppii6087 17/07/01 6087
105053 [질문] 오메가3 질문 드립니다 [7] OverCoMe2453 17/07/01 2453
105052 [질문] 컴알못이 질문드립니다 [3] YX1686 17/07/01 1686
105051 [질문] 문대통령 방미 궁금증? [10] Dwyane2969 17/07/01 2969
105050 [질문] 면도 어떻게 하시나요??? 깔끔한 면도를 원합니다 [23] endeavorhun3068 17/07/01 3068
목록 이전 다음
댓글

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