Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาพิกัดที่เป็นไปได้ทั้งหมดของสี่เหลี่ยมด้านขนานใน C++


ค้นหาพิกัดที่เป็นไปได้ทั้งหมดจากสามพิกัดที่กำหนดเพื่อสร้างสี่เหลี่ยมด้านขนาน 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