Computer >> Máy Tính >  >> Lập trình >> Javascript

Xác thực hình vuông trong mặt phẳng 2-D trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript có bốn đối số. Tất cả bốn đối số sẽ là các mảng có chính xác hai số biểu thị tọa độ của bốn đỉnh của một tứ giác hoặc bất kỳ hình nào (đóng hoặc không khép kín) trên một mặt phẳng.

Nhiệm vụ của hàm của chúng ta là xác định xem bốn đỉnh có tạo thành một hình vuông hay không.

Nếu chúng tạo thành một hình vuông, chúng ta nên trả về true, ngược lại là false.

Ví dụ -

Nếu tọa độ đầu vào là -

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

Sau đó, kết quả đầu ra phải là -

const output = true;

bởi vì những tọa độ này tạo thành một hình vuông có diện tích 4 đơn vị sq.

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

true