JavaScript 中多边形每条边的中心点
假设,我们有一个这样的数组数组:
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 ] ]
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP