Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การตรวจสอบสี่เหลี่ยมจัตุรัสในระนาบ 2D ด้วย JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์กิวเมนต์ 4 ตัว ทั้ง 4 เป็นอาร์เรย์ของตัวเลขสองตัว แทนพิกัดมุมสี่มุมของสี่เหลี่ยมหรือรูปทรงใดๆ บนระนาบ

ภารกิจคือกำหนดว่ามุมสี่มุมนี้สร้างเป็นสี่เหลี่ยมจัตุรัสหรือไม่ ถ้าเป็นคืน true มิฉะนั้น false

ตัวอย่าง

ถ้าพิกัดนำเข้าคือ:

const c1 = [1, 0];
const c2 = [-1, 0];
const c3 = [0, 1];
const c4 = [0, -1];

ผลลัพธ์ควรเป็น:

const output = true;

เพราะพิกัดเหล่านี้สร้างสี่เหลี่ยมจัตุรัสพื้นที่ 4 หน่วยกำลังสอง

ตัวอย่างโค้ด

const c1 = [1, 0];
const c2 = [-1, 0];
const c3 = [0, 1];
const c4 = [0, -1];
const validSquare = (c1, c2, c3, c4) => {
  const dist = (c1, c2) => (Math.sqrt(Math.pow(c1[0] - c2[0], 2) + Math.pow(c1[1] - c2[1], 2)));
  const points = [c1, c2, c3, c4];
  let lens = new Set();
  for(let i = 0; i < points.length; i++) {
    for(let j = i + 1; j < points.length; j++) {
      if(points[i][0] == points[j][0] && points[i][1] == points[j][1]) {
        return false;
      }
      let dis = dist(points[i], points[j]);
      lens.add(dis);
    }
  }
  return lens.size === 2;
};
console.log(validSquare(c1, c2, c3, c4));

ผลลัพธ์

true