JavaScript 中多边形每条边的中心

javascriptweb developmentfront end technologyobject oriented programming更新于 2026/1/24 10:20:17

假设,我们像这样数组数组 −

const arr = [
   [-73.9280684530257, 40.8099975343718],
   [-73.9282820374729, 40.8100875554645],
   [-73.9280124002104, 40.8103130893677],
   [-73.927875543761, 40.8102554080229],
   [-73.9280684530257, 40.8099975343718]
];

这里每个子数组代表二维平面上的一个点,每个点是 n 边多边形的一个顶点,其中 n 是输入数组中的子数组数量。

我们需要编写一个 JavaScript 函数,该函数接受一个这样的数组并返回一个包含 n 个子数组的新数组,每个子数组代表多边形相应边的中点。

示例

其代码为 −

const arr = [
   [-73.9280684530257, 40.8099975343718],
   [-73.9282820374729, 40.8100875554645],
   [-73.9280124002104, 40.8103130893677],
   [-73.927875543761, 40.8102554080229],
   [-73.9280684530257, 40.8099975343718]
];
const findCenters = arr => {
   const centerArray = [];
   for(i = 0; i<arr.length; i++){
      nextIndex = (i+1) % (arr.length);
      centerArray[i] = [];
      centerArray[i][0] = (arr [i][0] + arr[nextIndex][0]) / 2;
      centerArray[i][1] = (arr[i][1] + arr[nextIndex][1]) / 2;
   };
   return centerArray;
};
console.log(findCenters(arr));

输出

控制台中的输出 −

[
   [ -73.92817524524929, 40.81004254491815 ],
   [ -73.92814721884164, 40.8102003224161 ],
   [ -73.92794397198571, 40.8102842486953 ],
   [ -73.92797199839336, 40.81012647119735 ],
   [ -73.9280684530257, 40.8099975343718 ]
]

相关文章


有用资源