Giả sử chúng ta có ba tọa độ là trung điểm của các cạnh của tam giác. Chúng ta phải tìm tọa độ của tam giác. Vì vậy, nếu các đầu vào là (5, 3), (4, 4), (5, 5), thì đầu ra sẽ là (4, 2), (4, 6), (6, 4).
Để giải quyết điều này, chúng ta phải giải các tọa độ X và tọa độ Y một cách riêng biệt. Với tọa độ X của các đỉnh, chúng là x1, x2, x3. Khi đó, tọa độ X của các điểm giữa sẽ là (x1 + x2) / 2, (x2 + x3) / 2, (x3 + x1) / 2. Nếu chúng ta quan sát thấy tổng của ba biểu thức này bằng tổng của các tọa độ X. Bây giờ, chúng ta có tổng của ba biến và ba biểu thức cho tổng của mọi cặp trong số chúng. Chúng ta phải tìm ra giá trị của tọa độ bằng cách giải phương trình, tương tự như vậy, chúng ta giải tọa độ Y.
Ví dụ
#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); }
Đầu ra
6 4 4 2 4 6