Tìm tất cả các tọa độ có thể có từ ba tọa độ đã cho để tạo thành một hình bình hành có diện tích khác không. Giả sử A, B, C là ba điểm đã cho, chúng ta chỉ có thể có ba tình huống có thể xảy ra.
- AB, AC là các cạnh và BC là đường chéo
- AB, BC là các cạnh và AC là đường chéo
- BC, AC là các cạnh và AB là đường chéo
Vì vậy, chúng ta có thể nói rằng chỉ có ba tọa độ là có thể, từ đó chúng tôi có thể tạo ra một hình bình hành, nếu ba tọa độ được cho trước. Vì các cạnh đối diện bằng nhau nên AD =BC và AB =CD, chúng ta sẽ tính tọa độ các điểm còn thiếu D như sau -
(Dx-Ax,Dy-Ay) = (Cx-Bx,Cy-By) Dx = Ax+Cx-Bx Dy = Ay+Cy-By
Ví dụ
#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 - ax <<endl; } int main() { int ax = 5, ay = 0; //coordinates of A int bx = 1, by = 1; //coordinates of B int cx = 2, cy = 5; //coordinates of C printPoints(ax, ay, bx, by, cx, cy); }
Đầu ra
4, -4 6, 4 -2, 1