通过多个点,计算出中心点,我这里是JavaScript方法,其他大家懂其他语言也可以进行转换,我写的主要是一个思路。
求出来的并不是原有的点,而是原有点的中心位置的点。这个中心点是尽可能包括多个点。
通过两点形成的矩形,看能包括多个点。包括最多的点的两个点,再求这两个点的中心点,这就是最终的中心点。可能我说的有点难理解,下面看代码就可以知道了。如果有什么不对,欢迎评论和指正。

代码:

<!DOCTYPE html>
<html><head><title>计算中心点</title>
</head><body><script>function mathCenterPoint(pointList) {let centerPoint;let centerMap = new Map();let maxFlag = 0;for (let i = 0; i < pointList.length; i++) {for (let j = i + 1; j < pointList.length; j++) {//两两点组合let aPoint = pointList[i];let bPoint = pointList[j];let maxX = Math.max(aPoint[0], bPoint[0])let maxY = Math.max(aPoint[1], bPoint[1])let minX = Math.min(aPoint[0], bPoint[0])let minY = Math.min(aPoint[1], bPoint[1])let flag = 0;//开始比较for (let k = 0; k < pointList.length; k++) {//判断c点是否在这两个点形成的矩形框中间let cPoint = pointList[k];if ((cPoint[0] >= minX && cPoint[0] <= maxX) &&(cPoint[1] >= minY && cPoint[1] <= maxY)) {flag++;}}let tempCenterPoint = [(maxX + minX) / 2, (maxY + minY) / 2];if (flag >= maxFlag) {maxFlag = flag;if (centerMap.has(maxFlag)) {tempCenterPointX = centerMap.get(maxFlag);if (Math.abs(tempCenterPoint[0] - tempCenterPoint[1]) <= Math.abs(tempCenterPointX[0] - tempCenterPointX[1])) {centerMap.set(maxFlag, tempCenterPoint);}} else {centerMap.set(maxFlag, tempCenterPoint);}} else {centerMap.set(flag, tempCenterPoint);}//说明这两个点围成的矩形包裹了全部点if (flag == pointList.length) {//那么中心点就是中间点console.log("矩形包裹了全部点");centerPoint = centerMap.get(maxFlag);return centerPoint;}}}if (!centerPoint) {console.log("覆盖和多少个点:", maxFlag)centerPoint = centerMap.get(maxFlag)}return centerPoint;}let pointList = [[2, 3],[1, 1],[4, 22],[9, 14],[10, 1],[11, 23]]let centerPoint = mathCenterPoint(pointList);console.log("centerPoint:", centerPoint)</script>
</body></html>

通过多个点,计算出中心点相关推荐

  1. python 二维坐标多边形 计算多边形中心点,以及距该中心点最远的距离

    def center_geolocation(geolocations):'''输入多个经纬度坐标(格式:[[lon1, lat1],[lon2, lat2],....[lonn, latn]]),找 ...

  2. cv2.fitEllipse函数详解:ellipse参数并根据参数计算出椭圆焦点坐标

    cv2.fitEllipse函数详解:ellipse参数并根据参数计算出椭圆焦点坐标 最近因为用到了这个函数,所以就趁着这个机会,好好顺顺,做下记录. ellipse = cv2.fitEllipse ...

  3. 成功计算出文本类单词的概率

    首先是wordcount package org.lukey.hadoop.classifyBayes;import java.io.IOException; import java.util.Arr ...

  4. 将一个字符串计算出CRC16/XMODEM校验码(4位)

    将一个字符串计算出CRC16/XMODEM校验码(4位) unsigned short CRC16_XMODEM(unsigned char *puchMsg, unsigned int usData ...

  5. excel函数公式html文档,Excel中把计算式转换为运算结果的方法 EXCEL中计算出的公式如何转换成纯文本内容?...

    如何在EXCEL中将计算公式直接变结果如我在A1输入计算式:(1+2*3+4/5-6)*1.2+(1+5) 如何在B1得出该计算式的选中B1然后按快捷键ctrl+F3,进入名称管理器,新建,输入任意名 ...

  6. 定义一个计算字符串有效长度的_一个正方形的小抽屉柜,根据设计草图计算出所需四片木板的长度...

    这里想做的是一个正方形的小抽屉柜,首先根据设计草图标出尺寸计算出所需四片木板的长度. 其中,有两个边的木板是要靠着燕尾榫机的左边制作,另两个边的木板是要靠着燕尾榫机的右边制作. 修出四片木板. 试靠着 ...

  7. python计算某年某月多少天_Python编程实现输入某年某月某日计算出这一天是该年第几天的方法...

    本文实例讲述了Python编程实现输入某年某月某日计算出这一天是该年第几天的方法.分享给大家供大家参考,具体如下: #基于 Python3 一种做法: def is_leap_year(year): ...

  8. 请使用日期时间相关的API,计算出一个人已经出生了多少天

    package com.learn.demo03.DateFormat;import java.text.ParseException; import java.text.SimpleDateForm ...

  9. 问题描述 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底

    问题描述 给定一个由n行数字组成的数字三角形如下图所示.试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大. 对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径 ...

  10. python计算n阶乘中尾部零的个数_(Java)设计一个算法,计算出n阶乘中尾部零的个数...

    展开全部 long 类型对大数阶乘来e68a8462616964757a686964616f31333365633963说存储范围大小,强行使用会溢出,可以使用 BigDecimal. 代码如下:im ...

最新文章

  1. 决策树算法之cart剪枝
  2. 易宝典——玩转O365中的EXO服务 之三十六 为软删除邮箱启用就地保留
  3. 批量下载的实现及java.lang.IllegalStateException异常
  4. css3 上线圆角效果
  5. 据说这篇总结覆盖了一般Python开发面试中可能会问到的大部分问题
  6. jupyter not a color scheme terminal
  7. 冷高轮时间王思聪吃热狗电脑屏幕保护下载
  8. 关于vscode CloudMusic 插件无法登陆
  9. Caused by: java.io.IOException: ZIP entry size is too large
  10. 《寒江独钓》内核学习笔记(1)-- IRP - .Little Hann
  11. 基础30讲 第六讲 中值定理
  12. ArcGIS_标准差椭圆分析
  13. 政务云市场开启“狂飙”:一项前三,两项跃升!
  14. 金碟文件保存在服务器哪里,金蝶软件服务器地址在哪改
  15. SpringCloud 实战笔记
  16. 查看指定端口的占用情况
  17. 我们需要一颗强劲的心脏 2 --机房改造篇
  18. 论文阅读(9)---基于Transformer的多模态CNN心电图心律失常分类
  19. easypoi 语法_曼哈顿语法使用方法+网站分享
  20. 四级联动框实现筛选查询

热门文章

  1. 中国移动下月发布5G套餐:“三不一快”策略方便终端入网
  2. 第七周助教工作总结——NWNU李泓毅
  3. windows下使用curl命令
  4. Ogre 合成器 compositor
  5. threejs 效果合成器(EffectComposer)
  6. sklearn-线性回归
  7. 小程序毕业设计选题springboot+vue自习室预约小程序 图书馆预约小程序 自习室预约系统java
  8. 机械硬盘结构与固态硬盘
  9. 支付宝小程序授权登陆篇
  10. matlab基础学习——基础数学函数(持续更新)