求图纸形心的数据预处理与形心计算代码:输入多个矩形的坐标和长度宽度,计算它们的形心坐标
问题背景:
求一个平面图的形心,其中平面图由多个矩形组成。其中图来自现实世界,无计算机输入。
数据预处理:
需要用到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轴向下。以第一个矩形的坐标(左上顶点)为出发点。
求图纸形心的数据预处理与形心计算代码:输入多个矩形的坐标和长度宽度,计算它们的形心坐标相关推荐
- Python时间序列模型推理预测实战:时序推理数据预处理(特征生成、lstm输入结构组织)、模型加载、模型预测结果保存、条件判断模型循环运行
Python时间序列模型推理预测实战:时序推理数据预处理(特征生成.lstm输入结构组织).模型加载.模型预测结果保存.条件判断模型循环运行 目录
- python必备基础代码-【Python基础系列】常见的数据预处理方法(附代码)
本文简单介绍python中一些常见的数据预处理,包括数据加载.缺失值处理.异常值处理.描述性变量转换为数值型.训练集测试集划分.数据规范化. 1. 加载数据 1.1 数据读取 数据格式有很多,介绍常见 ...
- python数据预处理的代码_【Python基础系列】常见的数据预处理方法(附代码)
↑↑↑点击上方蓝字,回复资料,嘿嘿,10个G的惊喜 本文简单介绍python中一些常见的数据预处理,包括数据加载.缺失值处理.异常值处理.描述性变量转换为数值型.训练集测试集划分.数据规范化. 1. ...
- python代码实现中心化_数据预处理——标准化(附python代码)
数据标准化,是数据清洗的重要环节之一.主要目的是消除"量纲"和"不同规模"的影响,使其所放到相同的数据区间和范围,以减少规模.特征.分布差异等对数据模型的影响. ...
- 数据预处理-PDB文件处理代码
以下代码为个人原创,python实现,是处理PDB文件的部分常用代码,仅供参考! 1.下载PDB文件 下面是一个下载PDB文件的函数,传入的参数是一个写有pdb名字的namefile文件,函数的核心部 ...
- Cris 的 Python 数据分析笔记 06:Pandas 常见的数据预处理
文章目录 1. Pandas 对指定列排序 2. 泰坦尼克经典入门案例 3. Pandas 常用数据预处理函数 3.1 缺失值处理 3.2 Pandas 预处理函数自动过滤缺失值 3.3 手动来计算每 ...
- weiler-atherton多边形裁剪算法_EAST算法超详细源码解析:数据预处理与标签生成...
作者简介 CW,广东深圳人,毕业于中山大学(SYSU)数据科学与计算机学院,毕业后就业于腾讯计算机系统有限公司技术工程与事业群(TEG)从事Devops工作,期间在AI LAB实习过,实操过道路交通元 ...
- EAST算法超详细源码解析:数据预处理与标签生成
作者简介 CW,广东深圳人,毕业于中山大学(SYSU)数据科学与计算机学院,毕业后就业于腾讯计算机系统有限公司技术工程与事业群(TEG)从事Devops工作,期间在AI LAB实习过,实操过道路交通元 ...
- 机器学习一百天 数据预处理
机器学习一百天中文版地址 https://github.com/MLEveryday/100-Days-Of-ML-Code 机器学习一百天英文版地址 https://github.com/Avik- ...
最新文章
- x86_64 ubuntu18.04.4 python3.6.9 安装 cuda8.0 和 cudnn5.1
- Python 命名空间/名称查询 对效率的影响
- MYSQL中表级锁、行级锁、页级锁介绍
- 使用Couchbase分页
- github因网络问题无法git clone解决办法
- unix和linux命令_在Linux / UNIX中查找命令
- OpenCV3.4.1 vs2015 自定义过程的图片拼接
- 进销存excel_简单易操作!Excel免费进销存管理系统!不花钱的进销存管理软件...
- 全国大学生数学建模竞赛论文格式规范
- 如何使模糊的图片变清晰?
- Android应用停用
- IMDB电影评论文本分类
- visio常用快捷键_Visio2019常用形状对象的快捷键及常用操作技巧举例(一)
- 计算机系统启动项设置密码,电脑开机第一道密码怎么设置 - 卡饭网
- APtos 简介及机制
- 已有一个已排好序的数组,要求输入一个数,将它插入数组中,保持数组依然有序。
- 微信小程序开发之录音机 音频播放 动画 (真机可用)
- 路由器恢复出厂设置上网方式服务器无响应,路由器恢复出厂设置后不能联网了如何解决...
- Celoria的板子(last update:20201017)
- Leetcode 37:解数独(超详细的解法!!!)