Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++를 사용하여 한쪽 끝과 중간이 지정된 선의 다른 끝점 찾기

<시간/>

이 문제에서 선 시작점 A(xA , yA ) 및 중간점 M(xM , y ) .우리의 임무는 한쪽 끝과 중간이 주어진 선의 다른 끝점을 찾는 것입니다. .

문제를 이해하기 위해 예를 들어 보겠습니다.

입력

A = [1, 2], M = [3, 0]

출력

[5, -2]

설명

라인은 -

C++를 사용하여 한쪽 끝과 중간이 지정된 선의 다른 끝점 찾기

솔루션 접근 방식

문제를 해결하기 위해 수학에서 배운 기하학 개념을 사용할 것입니다. 모든 라인에 대해 중간점 공식이 있다는 것을 기억한다면,

mid(x) = (x1 + x2) / 2
mid(y) = (y1 + y2) / 2

그러나 우리는 문제의 중점 값이 주어지고 x2와 y2에 대한 값이 필요합니다. 따라서 공식을 적절하게 변경하겠습니다.

x2 = 2*mid(x) - x1
y2 = 2*mid(y) - y1

위의 공식을 이용하여 선의 중간점과 한 점을 이용하여 다른 끝점의 값을 구할 수 있습니다.

예시

솔루션 작동을 설명하는 프로그램

#include <iostream>
using namespace std;
void findMissingPointLine(float x1, float y1, float xm, float ym){
   float x2 = (2 * xm) - x1;
   float y2 = (2 * ym) - y1;
   cout<<"B(x, y) = "<<"( "<<x2<<", "<<y2<<" )";
}
int main()
{
   float x1 = -4, y1 = -1, xm = 3, ym = 5;
   cout<<"The other end point of the line is \n";
   findMissingPointLine(x1, y1, xm, ym);
   return 0;
}

출력

The other end point of the line is
B(x, y) = ( 10, 11 )