ค้นหาพิกัดที่เป็นไปได้ทั้งหมดจากสามพิกัดที่กำหนดเพื่อสร้างสี่เหลี่ยมด้านขนาน e ของพื้นที่ที่ไม่ใช่ศูนย์ สมมติว่า A, B, C เป็นสามคะแนนที่เราสามารถมีได้เพียงสามสถานการณ์เท่านั้น
- AB, AC เป็นด้าน และ BC เป็นเส้นทแยงมุม
- AB, BC เป็นด้าน และ AC เป็นเส้นทแยงมุม
- BC, AC คือด้าน และ AB คือเส้นทแยงมุม
ดังนั้นเราจึงสามารถพูดได้ว่ามีเพียงสามพิกัดเท่านั้นที่เราสามารถสร้างสี่เหลี่ยมด้านขนานได้หากได้รับสามพิกัด เนื่องจากด้านตรงข้ามเท่ากัน ดังนั้น AD =BC และ AB =CD เราจะคำนวณพิกัดของจุดที่ขาดหายไป D ดังด้านล่าง -
(Dx-Ax,Dy-Ay) = (Cx-Bx,Cy-By) Dx = Ax+Cx-Bx Dy = Ay+Cy-By
ตัวอย่าง
#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); }
ผลลัพธ์
4, -4 6, 4 -2, 1