Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm điểm cuối kia của một đoạn thẳng có một đầu và giữa cho trước bằng C ++

Trong bài toán này, chúng ta được cung cấp tọa độ của hai điểm của một đoạn thẳng bắt đầu từ điểm A (x A , y A ) và điểm giữa M (x M , y M ). Nhiệm vụ của chúng tôi là tìm điểm cuối kia của một đoạn thẳng với một đầu và giữa đã cho .

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

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

Đầu ra

[5, -2]

Giải thích

Dòng là -

Tìm điểm cuối kia của một đoạn thẳng có một đầu và giữa cho trước bằng C ++

Phương pháp tiếp cận giải pháp

Để giải quyết vấn đề, chúng ta sẽ sử dụng các khái niệm hình học đã học trong toán học. Nếu bạn nhớ, có một công thức điểm giữa cho mọi dòng là,

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

Nhưng chúng ta đã cho giá trị của trung điểm trong bài toán và cần giá trị của x2 và y2. Vì vậy, chúng tôi sẽ thay đổi công thức cho phù hợp.

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

Sử dụng công thức trên, chúng ta có thể tìm giá trị của điểm cuối kia bằng cách sử dụng điểm giữa và một điểm của đoạn thẳng.

Ví dụ

Chương trình minh họa hoạt động của giải pháp của chúng tôi

#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;
}

Đầu ra

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