使用 C++ 查詢已知一個端點和中點的線的另一個端點


在這個問題中,我們給定了一條線的兩個點的座標,起點 A(xA, yA) 和中點 M(xM, yM)。我們的任務是找到已知一個端點和中點的線的另一個端點

讓我們舉一個例子來理解這個問題,

輸入

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

輸出

[5, -2]

解釋

這條線是 -

解決方案方法

為了解決這個問題,我們將使用我們在數學中學習過的幾何概念。如果你還記得,每條線都有一箇中點公式,即:

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 )

更新於: 2022年2月11日

145 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.