不规则多边形重心求解
文章目录
- 一、不规则多边形重心求解
- 1.1 三角形重心计算方法
- 1.2 三角形面积计算方法
- 1.3 多边形面积的计算方法
- 1.4 不规则多边形的重心计算方法
一、不规则多边形重心求解
1.1 三角形重心计算方法
设三角形的三个顶点位置为A(x1,y1)A(x_1,y_1)A(x1,y1),B(x2,y2)B(x_2,y_2)B(x2,y2),C(x3,y3)C(x_3,y_3)C(x3,y3),那么△ABC△ABC△ABC的重心GGG坐标为
x=x1+x2+x33,y=y1+y2+y33x=\frac{x_1+x_2+x_3}{3}, y=\frac{y_1+y_2+y_3}{3} x=3x1+x2+x3,y=3y1+y2+y3
1.2 三角形面积计算方法
计算三角形的面积使用向量积的方式,下图中,假设P点为原点,A(x1,y1)A(x_1,y_1)A(x1,y1),B(x2,y2)B(x_2,y_2)B(x2,y2)。
以AAA,BBB和坐标原点PPP构成的△ABC△ABC△ABC的面积为
S=PB⃗×PA⃗2=x2y1−x1y22S=\frac{\vec{PB}\times \vec{PA}}{2}=\frac{x_2y_1-x_1y_2}{2} S=2PB×PA=2x2y1−x1y2
1.3 多边形面积的计算方法
对于多边形的情况,我们可以将多边形切分为多个三角形,分别进行求解。那么这个剖分点$ P$ 我们可以设在哪里呢?这里先给出结论:这个剖分点可以设置在多边形的内部,也可以设置到外部。
为什么这个剖分点可以设置到外部呢?我们可以通过简单的三角形情况来推广到多边形的情况。 对于△ABC△ABC△ABC,我们把剖分点设置在其外部$ P$ 的一点上,
△ABC△ABC△ABC的面积SSS为
S=12(PB⃗×PC⃗+PC⃗×PA⃗+PA⃗×PB⃗)S=\frac{1}{2}(\vec{PB}\times \vec{PC}+\vec{PC}\times \vec{PA}+\vec{PA}\times \vec{PB}) S=21(PB×PC+PC×PA+PA×PB)
设P(x0,y0),P(x_0,y_0),P(x0,y0),A(x1,y1)A(x_1,y_1)A(x1,y1),B(x2,y2)B(x_2,y_2)B(x2,y2),C(x3,y3)C(x_3,y_3)C(x3,y3)
△ABC△ABC△ABC的面积SSS可以写为
S=12(x1y2−x2y1+x2y3−x3y2+x3y1−x1y3)S=\frac{1}{2}\left ( x_1y_2-x_2y_1+x_2y_3-x_3y_2+x_3y_1-x_1y_3\right ) S=21(x1y2−x2y1+x2y3−x3y2+x3y1−x1y3)
这时可以发现跟外部点PPP没有关系,只跟顶点的坐标有关系。
1.4 不规则多边形的重心计算方法
不规则图形一般没有中心点这个概念,所以只能使用重心来代替中心点,这里先给出一个公式:
平面多边形XXX可以被剖分为nnn个有限的简单图形X1,X2,…,XnX_1,X_2,…,X_nX1,X2,…,Xn,这些简单图形的重心点为GiG_iGi,面积为SiS_iSi,那么这个平面多边形的重心点坐标G(x,y)G(x,y)G(x,y)为
x=∑ni=1GixSi∑i=1nSi,y=∑ni=1GiySi∑i=1nSix=\frac{\sum_{n}^{i=1}G_{ix}S_i}{\sum_{i=1}^{n} S_i},y=\frac{\sum_{n}^{i=1}G_{iy}S_i}{\sum_{i=1}^{n} S_i} x=∑i=1nSi∑ni=1GixSi,y=∑i=1nSi∑ni=1GiySi
- 不规则多边形重心计算
def get_gravity_point(points):"""@brief 获取多边形的重心点@param points The points@return The center of gravity point."""if len(points) <= 2:return list()area = Decimal(0.0)x, y = Decimal(0.0), Decimal(0.0)for i in range(len(points)):lng = Decimal(points[i][0])lat = Decimal(points[i][1])nextlng = Decimal(points[i-1][0])nextlat = Decimal(points[i-1][1])tmp_area = (nextlng*lat - nextlat*lng)/Decimal(2.0)area += tmp_areax += tmp_area*(lng+nextlng)/Decimal(3.0)y += tmp_area*(lat+nextlat)/Decimal(3.0)x = x/areay = y/areareturn [float(x), float(y)]
不规则多边形重心求解相关推荐
- POJ 3855 计算几何·多边形重心
思路: 多边形面积->任选一个点,把多边形拆成三角,叉积一下 三角形重心->(x1+x2+x3)/3,(y1+y2+y3)/3 多边形重心公式题目中有,套一下就好了 计算多边形重心方法: ...
- hdu 1115(多边形重心)
求多边形重心的题目大致有这么几种: 1.质量集中在顶点上 n个顶点坐标为(xi,yi),质量为mi,则重心 X = ∑( xi×mi ) / ∑mi Y = ∑( yi×mi ) / ...
- HDOJ(1115)多边形重心
Lifting the Stone http://acm.hdu.edu.cn/showproblem.php?pid=1115 题目描述:输入n个顶点(整数),求它们围成的多边形的重心. 算法:以一 ...
- HDU 1115 Lifting the Stone(求多边形重心)
HDU 1115 大意:给你个n,有n个点,然后给你n个点的坐标,求这n个点形成的多边形的重心的坐标. 1 struct point 2 { 3 double x, y; 4 } P[1000010] ...
- NYOJ 3:多边形重心问题
多边形重心问题 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接, (第一个和最后一个连接), ...
- 【opencv-python不规则多边形 ROI提取】
opencv-python不规则多边形 ROI提取 import cv2import numpy as np import joblibpts = [] # 用于存放点# 统一的:mouse call ...
- java计算一个多边形的重心_多边形重心问题 java
多边形重心问题 java 看题目 点这里 题目描述: 描述 在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接, (第一个和最后一个连接),所有线段不和其他线段相交,但是可以 ...
- 南阳 3 多边形重心问题(数学几何)
多边形重心问题 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接, (第一个和最后一个连接), ...
- 不规则多边形区域的面积计算算法
不规则多边形区域的面积计算算法 最近在写一个显微图像分析处理方面的程序,里面有一个功能是计算一个不规则的多边形区域的面积.因此花了点时间研究这个算法该如何写.研究了一番之后,算是找到了个比较靠谱的算法 ...
最新文章
- java 编写小工具 尝试 学习(四)
- 精细化容量管理的设备成本优化之路
- 智能指针shared_ptr的用法
- java中动态顺序死锁问题
- python没有那个文件或目录_fatal error: Python.h: 没有那个文件或目录 解决方法
- nginx+memcache实现页面缓存应用
- 为了防止程序重排序,慎用volatile
- 余承东吐槽苹果续航;微软 IE 浏览器被曝漏洞;React Native 0.61.0 发布 | 极客头条...
- No resource found that matches the given name 'android:Theme.Material.Light.DarkActionBar'
- 如何注册谷歌账号、邮箱(22.8.23亲测可用)
- 空间中直线到平面的距离的公式是什么?
- TeamViewer突破地域限制,解决办公难题
- 【问题解决】Selenium——NoSuchWindowException: Browsing context has been discarded
- ubuntu分区大小
- 我用分析了42万字的歌词,为了搞清楚民谣歌手们在唱些什么
- 苹果开发者账号(公司级)和邓白氏编码(D-U-N-S)申请记录(2015.06)
- 一些有趣的鸽巢原理的题目
- 抖音删除作品会有哪些影响,限流降权该如何挽回丨国仁网络资讯
- 亚利桑那州立大学周纵苇:研习 U-Net ——现有的分割网络创新 | AI 研习社74期大讲堂...
- 计算机课真多,这节电脑课真爽啊
热门文章
- 父爱动画代码python_情人节锦囊:简单的python表白程序(动画效果)
- 这个微信小游戏我就坚持了五秒 好玩的休闲游戏推荐
- 1025.ws index.php.,程控电话交换机系统局数据和用户数据
- 【Android】【打开方式】Android11用其它应用打开微信文件
- 从一个男人的角度告诉你如何选老婆 (实在是写的太好了 忍不住转一个)
- 《 ERP高级计划》书的解读之零物料约束和能力约束逻辑(蔡颖)(转)
- 在线支付系列【2】支付宝和微信支付发展史
- 【VBA】Excel拆分表格,并且复制格式
- Python分析薛之谦与李雨桐互撕微博
- 【json】json文件中文乱码