问题背景:

求一个平面图的形心,其中平面图由多个矩形组成。其中图来自现实世界,无计算机输入。

数据预处理:

需要用到proceson,网址:https://www.processon.com

首先将区域分为多个矩形,用尺子量出它们的长宽后记录到processon中,例如宽2.3厘米,乘个100,算作230px,填写到processon上,如图:

注意多多使用右边的度量工具来画图,很方便。

处理完毕后,我们就方便的得到了任意一个矩形的坐标和宽高,再将它们手工输入到数组里。

形心计算代码:

<!DOCTYPE html>
<html>
<body><div id="answer"></div></body><script>function Rect (x, y, width, height) {this.x = xthis.y = ythis.width = widththis.height = height}//在这里从左到右手动写入各个矩形就OK了,左上角坐标+长宽let list = [new Rect(372, 701, 50, 300),new Rect(422, 701, 200, 650),new Rect(619, 501, 100, 850),new Rect(720, 502, 50, 700),new Rect(770, 454, 180, 750),new Rect(950, 183, 90, 1020),new Rect(1040, 183, 190, 250),new Rect(1040, 813, 50, 390),new Rect(1090, 813, 250, 180),new Rect(1460, 183, 230, 250),]let answer = {x: 0, y: 0, s: 0}answer.x = getCenterX(list[0])answer.y = getCenterY(list[0])answer.s = getS(list[0])for (let i = 1; i < list.length; i++) {answer = compute(answer.x, answer.y, answer.s, list[i])}//数据展示,可无视这一段代码document.getElementById("answer").innerHTML=
"形心x坐标:"+answer.x +"</br>形心y坐标:"+ answer.y+"</br>总面积:"+ answer.s+"</br>对第一个矩形的x偏移量:" + (answer.x-list[0].x) + "</br>对第一个矩形的y偏移量:" + (answer.y-list[0].y);//计算形心function compute (x1, y1, s, rect) {let x2 = getCenterX(rect)let y2 = getCenterY(rect)let smallS = getS(rect);let k = smallS / (smallS + s)//分子是谁,就朝着谁的坐标前进k*距离x1 = x1 + k * (x2 - x1)y1 = y1 + k * (y2 - y1)return {x: x1, y: y1, s: s + smallS}}function  getCenterX (rect) {return rect.x + rect.width / 2;}function getCenterY (rect) {return rect.y + rect.height / 2}function getS (rect) {return rect.height * rect.width}
</script>
</html>

计算结果:

这里的偏移量为直角坐标系,x轴向右,y轴向下。以第一个矩形的坐标(左上顶点)为出发点。

求图纸形心的数据预处理与形心计算代码:输入多个矩形的坐标和长度宽度,计算它们的形心坐标相关推荐

  1. Python时间序列模型推理预测实战:时序推理数据预处理(特征生成、lstm输入结构组织)、模型加载、模型预测结果保存、条件判断模型循环运行

    Python时间序列模型推理预测实战:时序推理数据预处理(特征生成.lstm输入结构组织).模型加载.模型预测结果保存.条件判断模型循环运行 目录

  2. python必备基础代码-【Python基础系列】常见的数据预处理方法(附代码)

    本文简单介绍python中一些常见的数据预处理,包括数据加载.缺失值处理.异常值处理.描述性变量转换为数值型.训练集测试集划分.数据规范化. 1. 加载数据 1.1 数据读取 数据格式有很多,介绍常见 ...

  3. python数据预处理的代码_【Python基础系列】常见的数据预处理方法(附代码)

    ↑↑↑点击上方蓝字,回复资料,嘿嘿,10个G的惊喜 本文简单介绍python中一些常见的数据预处理,包括数据加载.缺失值处理.异常值处理.描述性变量转换为数值型.训练集测试集划分.数据规范化. 1. ...

  4. python代码实现中心化_数据预处理——标准化(附python代码)

    数据标准化,是数据清洗的重要环节之一.主要目的是消除"量纲"和"不同规模"的影响,使其所放到相同的数据区间和范围,以减少规模.特征.分布差异等对数据模型的影响. ...

  5. 数据预处理-PDB文件处理代码

    以下代码为个人原创,python实现,是处理PDB文件的部分常用代码,仅供参考! 1.下载PDB文件 下面是一个下载PDB文件的函数,传入的参数是一个写有pdb名字的namefile文件,函数的核心部 ...

  6. Cris 的 Python 数据分析笔记 06:Pandas 常见的数据预处理

    文章目录 1. Pandas 对指定列排序 2. 泰坦尼克经典入门案例 3. Pandas 常用数据预处理函数 3.1 缺失值处理 3.2 Pandas 预处理函数自动过滤缺失值 3.3 手动来计算每 ...

  7. weiler-atherton多边形裁剪算法_EAST算法超详细源码解析:数据预处理与标签生成...

    作者简介 CW,广东深圳人,毕业于中山大学(SYSU)数据科学与计算机学院,毕业后就业于腾讯计算机系统有限公司技术工程与事业群(TEG)从事Devops工作,期间在AI LAB实习过,实操过道路交通元 ...

  8. EAST算法超详细源码解析:数据预处理与标签生成

    作者简介 CW,广东深圳人,毕业于中山大学(SYSU)数据科学与计算机学院,毕业后就业于腾讯计算机系统有限公司技术工程与事业群(TEG)从事Devops工作,期间在AI LAB实习过,实操过道路交通元 ...

  9. 机器学习一百天 数据预处理

    机器学习一百天中文版地址 https://github.com/MLEveryday/100-Days-Of-ML-Code 机器学习一百天英文版地址 https://github.com/Avik- ...

最新文章

  1. x86_64 ubuntu18.04.4 python3.6.9 安装 cuda8.0 和 cudnn5.1
  2. Python 命名空间/名称查询 对效率的影响
  3. MYSQL中表级锁、行级锁、页级锁介绍
  4. 使用Couchbase分页
  5. github因网络问题无法git clone解决办法
  6. unix和linux命令_在Linux / UNIX中查找命令
  7. OpenCV3.4.1 vs2015 自定义过程的图片拼接
  8. 进销存excel_简单易操作!Excel免费进销存管理系统!不花钱的进销存管理软件...
  9. 全国大学生数学建模竞赛论文格式规范
  10. 如何使模糊的图片变清晰?
  11. Android应用停用
  12. IMDB电影评论文本分类
  13. visio常用快捷键_Visio2019常用形状对象的快捷键及常用操作技巧举例(一)
  14. 计算机系统启动项设置密码,电脑开机第一道密码怎么设置 - 卡饭网
  15. APtos 简介及机制
  16. 已有一个已排好序的数组,要求输入一个数,将它插入数组中,保持数组依然有序。
  17. 微信小程序开发之录音机 音频播放 动画 (真机可用)
  18. 路由器恢复出厂设置上网方式服务器无响应,路由器恢复出厂设置后不能联网了如何解决...
  19. Celoria的板子(last update:20201017)
  20. Leetcode 37:解数独(超详细的解法!!!)

热门文章

  1. 原神服务器维护后抽奖池会更新吗,原神抽奖池更新后保底会重置吗
  2. 没有一个顺手的流程绘制工具?好吧,自己动手,丰衣足食
  3. 个人随笔、诗集,有兴趣可以看一下
  4. ubuntu16.04安装fcl库出现的问题
  5. 华为Matebook安装Manjaro Linux的不完全攻略
  6. BOOST 线程完全攻略 - 基础篇 .
  7. 围观|解读新一代企业数字化架构的“三驾马车”
  8. ChatGPT热中的冷思考
  9. 300集java课程详细介绍
  10. 太阳能计算机作文500字,制作太阳能热水器