Cho 3 tọa độ A, B, C. Tìm tất cả tọa độ D có thể để tạo hình bình hành diện tích khác 0. Chỉ có 3 trường hợp:
- AB, AC là cạnh, BC là đường chéo
- AB, BC là cạnh, AC là đường chéo
- BC, AC là cạnh, AB là đường chéo
Do cạnh đối diện bằng nhau: AD = BC, AB = CD. Tính D:
Dx = Ax + Cx - Bx Dy = Ay + Cy - By
Và 2 trường hợp tương tự.
Ví dụ mã nguồn
#include <iostream>
using namespace std;
void printPoints(int ax, int ay, int bx, int by, int cx, int cy) {
cout << ax + bx - cx << ", " << ay + by - cy << endl;
cout << ax + cx - bx << ", " << ay + cy - by << endl;
cout << cx + bx - ax << ", " << cy + by - ay << endl;
}
int main() {
int ax = 5, ay = 0;
int bx = 1, by = 1;
int cx = 2, cy = 5;
printPoints(ax, ay, bx, by, cx, cy);
}
Kết quả đầu ra
4, -4 6, 4 -2, 1