在 C++ 中查詢給定三角形各邊中點的座標


假設我們有三個座標,它們是三角形各邊的中點。我們必須找到三角形的座標。因此,如果輸入類似於 (5, 3)、(4, 4)、(5, 5),則輸出將為 (4, 2)、(4, 6)、(6, 4)。

為了解決這個問題,我們必須分別對 X 座標和 Y 座標進行求解。對於頂點的 X 座標,設它們為 x1、x2、x3。然後,中點的 X 座標將為 (x1 + x2)/2、(x2 + x3)/2、(x3 + x1)/2。如果我們觀察這三個表示式的和,它等於 X 座標的和。現在,我們有了三個變數的和以及每個變數對的三個表示式。我們必須透過求解方程來找出座標的值。類似地,我們求解 Y 座標。

示例

 即時演示

#include<iostream>
#include<vector>
#define N 3
using namespace std;
vector<int> getResult(int v[]) {
   vector<int> res;
   int sum = v[0] + v[1] + v[2];
   res.push_back(sum - v[1]*2);
   res.push_back(sum - v[2]*2);
   res.push_back(sum - v[0]*2);
   return res;
}
void searchPoints(int mid_x_coord[], int mid_y_coord[]) {
   vector<int> x_vals = getResult(mid_x_coord);
   vector<int> y_vals = getResult(mid_y_coord);
   for (int i = 0; i < 3; i++)
   cout << x_vals[i] << " " << y_vals[i] <<endl;
}
int main() {
   int mid_x_coord[N] = { 5, 4, 5 };
   int mid_y_coord[N] = { 3, 4, 5 };
   searchPoints(mid_x_coord, mid_y_coord);
}

輸出

6 4
4 2
4 6

更新於: 2019-12-17

122 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告