ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • API를 활용한 점과 직선 사이의 거리
    Algorithm with C/Math 2020. 10. 1. 20:46

    점과 직선 사이의 거리를 증명부터 해보자.

    아래와 같이 직선과 직선 외부의 점 P가 있다고 하자.

     

    점과 직선 사이의 거리를 증명해보자.

    직선 PH의 기울기와 직선 m의 기울기를 각 각 구해보자.

    두 직선의 기울기의 곱이 -1이 된다는 사실을 이용해서 식을 쓰면

     

     

    점과 직선 사이의 거리를 구하는 함수 구현

    프로그램상에서 구현하기 위해서

    기존의 직선의 방정식에서 다음과 같은 방정식을 사용한다.

                                              y = ax + r

    즉, 이항을 해서 다음의 형태로 바꾸어 주도록 하자. 즉, 직선을 일반형으로 표현하자.

                                              ax - y + r = 0

    위의 공식에 a는 a를 대입하고, b대신 -1을 대입하고 c대신 r을 대입하면 된다.

    즉, 기울기a와 r값만 구하면 된다.

    구현에서 직선은 즉, 고정적이다. 

    즉, 직선은 시작점과 끝점을 갖도록 한다.

    직선의 방정식에서 직선의 기울기는 두 점만 주어지면,

    해당 직선의 기울기를 알아낼 수 있다.

    주어진 두 점은 각 각 ( StartX, StartY ), ( EndX, EndY ) 이다.

    그리고 점을 표현할 방법을 생각하면 원을 하나 그려서 이 원의 중심을 점으로 표현하도록 한다.

    키보드 입력에 따라 이 원의 중심을 이동시킬 것이다.

    변수들을 먼저 정의해보자. 모두 전역 변수들이다.

    API의 특징은 console의 특징과 같다. 좌측상단이 원점이고 오른쪽으로 이동할수록 x좌표값이 커지고

    밑으로 이동할수록 y좌표값이 커진다.

    아래는 키보드 입력에 따라 점(원)을 이동시키는 함수이다.

    점의 위치가 변경됨에 따라 그 거리가 어떻게 되는지 실시간으로 보기위해서 만든 것이다.

    아래의 함수는 원과 직선을 해당 위치에 그려주는 함수이다.

    그리고 추가적으로 FindDistance함수에서 구한 거리를 출력한다.

    그리고 나머지는 API의 함수들이므로, 전체 소스를 아래에서 보자.

    소스 파일

    MyWindow.cpp
    0.00MB

     

    프로그램 영상

     

     

    댓글

Designed by Tistory.