C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[1111] 2점의 각을 구하는 함수.
김태선 [cppbuilder] 12549 읽음    2012-11-29 11:50
심심할 때 2점의 각 구하기

x, y가 기준점이고
0도는 화면 바로 밑으로 진행하는 각 (100, 100) - (100, 200) 과 같이
그기서 화면 우측으로 진행하는 각은 + 각 (100, 100) - (200, 200) 은 45도
그기서 화면 좌측으로 진행하는 각은 - 각 (100, 100) - (0, 200) 은 -45도
그기서 기준점 바로 위 각은 180도 (100, 100) - (100, 0)
이런 식으로 됩니다.


//---------------------------------------------------------------------------
#include <math.h>

float GetAngleBetween2Point(int x, int y, int x2, int y2)
{
    const double PI = 3.1415926535897932384626433;
    float dx = x2 - x;
    float dy = y2 - y;

    float radian = (float)atan2(dx, dy);
    float degree = (float)((radian * 180) / PI);

    return degree;
}

float GetAngleBetween2Point(TPoint xy, TPoint xy2)
{
    return GetAngleBetween2Point(xy.x, xy.y, xy2.x, xy2.y);
}
//---------------------------------------------------------------------------

// TEST

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    Caption = GetAngleBetween2Point(100, 100, 200, 200);
}
//---------------------------------------------------------------------------

여기서 유머 포인트는 PI 값입니다.
時代遺憾 [cdincdin]   2012-12-04 10:35 X
유용한 정보 감사드립니다. 파이 값이 조금 부담스럽다는... ㅎㅎ

+ -

관련 글 리스트
1111 2점의 각을 구하는 함수. 김태선 12549 2012/11/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.