計算四個坐標點是否可以組成一個平行四邊形

function isParallelogram (arr) {
  var arr1 = []
  var arr2 = []
  for (let i = 0; i < 4; i++) {

  }
  for (let i = 0; i < 4; i++) {
    for (let j = i + 1; j < 4; j++) {
      var distance = (arr[i].x - arr[j].x) * (arr[i].x - arr[j].x) + (arr[i].y - arr[j].y) * (arr[i].y - arr[j].y)
      arr1.push({
        points: [arr[i], arr[j]],
        distanceTag: [i, j],
        distance
      })
    }
  }
  arr1.sort(function (a, b) {
    return b.distance - a.distance
  })
  // 中點都除以2 所以省略除2
  var midpoint1 = {
    x: arr1[0].points[0].x + arr1[0].points[1].x,
    y: arr1[0].points[0].y + arr1[0].points[1].y
  }

  for (let i = 0; i < 4; i++) {
    if (!arr1[0].distanceTag.includes(i)) {
      arr2.push(arr[i])
    }
  }
  var midpoint2 = {
    x: arr2[0].x + arr2[1].x,
    y: arr2[0].y + arr2[1].y
  }
  if (midpoint1.x === midpoint2.x && midpoint1.y === midpoint2.y) {
    return true
  }
  return false
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容