Python实战:5行代码搞定不规则多边形重心计算(附完整代码)

从游戏碰撞到地图绘制:深入理解多边形‘重心’计算的三种算法实现(附Python代码) 本文深入探讨了多边形重心计算的三种算法实现:Shapely库直接计算法、三角剖分加权法和高斯面积公式法(鞋带公式),并附有Python代码示例。这些算法在游戏开发、地理信息系统(GIS)和计算机视觉等领域有广泛应用,帮助开发者解决不规则多边形的重心计算问题。 阅读详情

Python实战:5行代码搞定不规则多边形重心计算(附完整代码)

最近在做一个地理围栏相关的项目时,遇到了一个看似简单却让我琢磨了好一阵子的问题:如何快速、准确地计算一个不规则多边形的重心?无论是游戏开发中的物理碰撞、GIS地理信息系统,还是工业设计中的质心定位,这个需求都相当普遍。网上资料不少,但要么是长篇大论的理论推导,要么是代码冗长、难以直接复用。经过一番研究和实践,我提炼出了一个极其简洁的Python实现,核心计算部分真的只需要5行代码。这篇文章,我就来分享这个“懒人”方案,并附上可直接运行的完整代码和避坑指南。

1. 为什么你需要计算多边形重心?

在深入代码之前,我们得先搞清楚,计算多边形重心到底有什么用。这绝不是一个纯粹的数学游戏。

  • 物理模拟与游戏开发:在游戏引擎中,一个物体的物理行为(如坠落、旋转、碰撞)很大程度上取决于其质心(对于密度均匀的物体,质心即重心)。如果你用多边形网格来定义角色或物体,快速计算其重心是进行逼真物理模拟的第一步。
  • 地理信息系统(GIS):在地图应用中,我们常常需要为一个行政区划、一个湖泊或一个自定义区域标注一个“中心点”。这个中心点用于信息展示、距离估算或空间分析,而几何重心往往比简单的边界框中心更具代表性。
  • 计算机图形学与工业设计:在CAD建模、3D打印或机器人路径规划中,确定一个复杂截面的重心对于分析稳定性、计算转动惯量至关重要。
  • 数据可视化:当你有一系列散点,想用一个有意义的“中心”来代表它们时,可以构造这些点的凸包(一个多边形),然后计算该凸包的重心。

所以,无论你是开发者、数据分析师还是工程师,掌握这个高效的计算工具,都能在关键时刻派上用场。接下来,我们直奔主题,看看如何用Python优雅地解决它。

2. 核心算法:鞋带公式与加权平均

计算任意多边形(包括凹多边形)重心的标准方法,基于一个经典的几何公式——鞋带公式,用于计算面积,再结合加权平均的思想。

我们不进行繁琐的公式推导,直接理解其计算过程。假设一个多边形有 n 个顶点 (x₁, y₁), (x₂, y₂), ..., (xₙ, yₙ),并且顶点按顺序连接(顺时针或逆时针)。

核心计算步骤如下:

  1. 计算符号面积:使用鞋带公式。这个面积是有符号的,正负代表了顶点的环绕方向(逆时针为正,顺时针为负)。对于重心计算,我们取它的绝对值。
  2. 计算重心的加权坐标:同时,在遍历顶点计算面积的过程中,我们可以累积计算重心坐标的分子部分。

这个过程听起来复杂,但用代码表示却异常简洁。关键在于理解这个遍历:对于多边形的每一条边(从顶点 i 到顶点 i+1),我们都在进行一小块“贡献值”的累加。

注意:多边形的顶点序列必须是连续的,即最后一个顶点必须与第一个顶点连接,形成一个闭合图形。通常,我们提供的顶点列表应满足这个条件。

为了更直观地对比理解,我们来看一下三角形这个特例与任意多边形的通用公式之间的关系:

特性三角形 (3个顶点)任意多边形 (n个顶点)
重心公式G = ((x1+x2+x3)/3, (y1+y2+y3)/3)基于面积加权的公式,见下文代码
面积公式向量叉积 / 2鞋带公式 (Shoelace Formula)
计算复杂度O(1),直接计算O(n),需要遍历所有顶点
代码实现极其简单需要循环,但结构规整

可以看到,多边形重心计算是三角形公式的一种推广和泛化。理解了这一点,再看下面的代码就不会觉得陌生了。

3. 5行核心代码实现

现在,揭晓承诺的5行核心代码。我们将计算过程封装在一个函数里。

def polygon_centroid(vertices):
    """
    计算任意多边形的重心(质心)。
    参数 vertices: 列表,包含多边形的顶点坐标,格式为 [(x1, y1), (x2, y2), ...]
    返回: (cx, cy),重心坐标的元组。
    """
    x = y = area = 0.0
    n = len(vertices)
    # 确保多边形是闭合的(可选,通常由调用者保证)
    if vertices[0] != vertices[-1]:
        vertices = vertices + [vertices[0]]

    for i in range(n):
        x0, y0 = vertices[i]
        x1, y1 = vertices[(i + 1) % n]  # 使用取模确保循环到第一个点
        # 核心计算开始
        a = x0 * y1 - x1 * y0
        area += a
        x += (x0 + x1) * a
        y += (y0 + y1) * a
    # 核心计算结束

    area *= 0.5
    if area == 0:
        raise ValueError("多边形面积为零,无法计算重心(例如,所有点共线)。")
    cx = x / (6 * area)
    cy = y / (6 * area)
    return cx, cy

看,从 for i in range(n): 到 y += (y0 + y1) * a 这五行,就是整个算法的核心迭代部分。它完成了面积片段(a)的累加以及重心坐标分子的累加。后面的代码只是完成最后的标准化计算和错误检查。

让我们写个简单的测试用例来验证一下:

# 测试:一个简单的四边形(矩形)
rect = [(0, 0), (4, 0), (4, 2), (0, 2)]
# 预期重心在 (2, 1)
center = polygon_centroid(rect)
print(f"矩形 {rect} 的重心是: {center}")
# 输出:矩形 [(0, 0), (4, 0), (4, 2), (0, 2)] 的重心是: (2.0, 1.0)

结果符合预期!这个函数可以处理任意凸多边形或凹多边形。

4. 完整代码与高级用法

一个健壮的工程代码不能只有核心算法。下面是一个更完整的版本,包含了输入验证、可视化示例以及处理常见文件格式(如GeoJSON)的扩展。

import matplotlib.pyplot as plt
import json

def robust_polygon_centroid(vertices, validate=True):
    """
    健壮版多边形重心计算。
    参数:
        vertices: 顶点坐标列表。
        validate: 是否进行输入验证(如面积非零、顶点数>=3)。
    返回:
        (cx, cy) 或抛出异常。
    """
    if validate:
        if len(vertices) < 3:
            raise ValueError("多边形至少需要3个顶点。")
        # 简单检查是否所有点共线(面积为零)
        # 更严格的检查可以在循环后进行

    x = y = area = 0.0
    n = len(vertices)

    for i in range(n):
        x0, y0 = vertices[i]
        x1, y1 = vertices[(i + 1) % n]
        a = x0 * y1 - x1 * y0
        area += a
        x += (x0 + x1) * a
        y += (y0 + y1) * a

    area *= 0.5
    abs_area = abs(area)

    if abs_area < 1e-10:  # 使用一个极小的容差值
        raise ValueError(f"多边形面积过小或为零 ({area}),可能所有顶点共线。")

    # 使用有符号面积进行计算,结果不受顶点顺序(顺时针/逆时针)影响
    cx = x / (6 * area)
    cy = y / (6 * area)
    return cx, cy, abs_area

def visualize_polygon_and_centroid(vertices, centroid):
    """使用matplotlib可视化多边形及其重心。"""
    xs, ys = zip(*vertices)  # 解压坐标列表
    # 闭合多边形
    xs = list(xs) + [xs[0]]
    ys = list(ys) + [ys[0]]

    plt.figure(figsize=(8, 6))
    plt.plot(xs, ys, 'b-', linewidth=2, label='多边形边界')
    plt.fill(xs, ys, alpha=0.2, color='blue')
    plt.scatter(*centroid, color='red', s=200, zorder=5, label=f'重心 {centroid}')
    plt.scatter(xs[:-1], ys[:-1], color='green', s=50, zorder=5, label='顶点')
    plt.axis('equal')
    plt.grid(True, linestyle='--', alpha=0.7)
    plt.legend()
    plt.title("多边形重心计算可视化")
    plt.xlabel("X坐标")
    plt.ylabel("Y坐标")
    plt.show()

# 示例:处理一个凹多边形
l_shape = [(0,0), (4,0), (4,2), (2,2), (2,4), (0,4)]
cx, cy, area = robust_polygon_centroid(l_shape)
print(f"L形多边形面积: {area:.2f}, 重心: ({cx:.2f}, {cy:.2f})")
visualize_polygon_and_centroid(l_shape, (cx, cy))

运行这段代码,你会看到一个L形多边形和其重心的清晰图示。可视化能帮你直观地验证计算结果是否正确,尤其是在处理凹多边形时。

5. 常见问题与性能优化

在实际使用中,你可能会遇到以下几个典型问题:

1. 顶点顺序的影响 我们的算法基于有符号面积,因此顶点必须按顺序排列(顺时针或逆时针均可)。如果你有一堆乱序的点,需要先进行排序(例如,计算凸包)。对于简单多边形,直接按输入顺序连接即可;对于复杂形状,确保数据源提供的顶点顺序是正确的。

2. 数值精度问题 当多边形非常大或非常小时,浮点数计算可能带来精度误差。在要求极高的场景(如地理坐标计算),可以考虑使用 decimal.Decimal 或 fractions.Fraction 模块进行高精度计算,但会牺牲一些性能。

from decimal import Decimal, getcontext
getcontext().prec = 28  # 设置高精度

def high_precision_centroid(vertices):
    x = y = area = Decimal(0)
    n = len(vertices)
    for i in range(n):
        x0, y0 = map(Decimal, vertices[i])
        x1, y1 = map(Decimal, vertices[(i+1)%n])
        a = x0*y1 - x1*y0
        area += a
        x += (x0 + x1) * a
        y += (y0 + y1) * a
    area /= Decimal(2)
    if area == 0:
        raise ValueError("面积为零")
    cx = x / (Decimal(6) * area)
    cy = y / (Decimal(6) * area)
    return float(cx), float(cy)

3. 性能考量 我们的算法时间复杂度是 O(n),对于大多数应用(顶点数在几千以内)已经足够快。如果需要在实时系统中每秒计算成千上万个多边形,可以考虑以下优化:

  • 使用 NumPy 进行向量化运算。
  • 对于静态多边形,预先计算并缓存重心。
  • 使用 Cython 或 Numba 将关键循环编译成机器码。

这里提供一个使用 NumPy 的向量化实现,在处理大批量顶点时速度极快:

import numpy as np

def centroid_numpy(vertices):
    """
    使用NumPy向量化计算多边形重心。
    vertices: 形状为 (n, 2) 的NumPy数组。
    """
    v = np.array(vertices, dtype=np.float64)
    # 使用滚动操作获取下一点
    v_next = np.roll(v, -1, axis=0)
    # 向量化计算鞋带公式的每一项
    a = v[:, 0] * v_next[:, 1] - v_next[:, 0] * v[:, 1]
    area = 0.5 * np.sum(a)
    if abs(area) < 1e-12:
        raise ValueError("面积过小")
    cx = np.sum((v[:, 0] + v_next[:, 0]) * a) / (6 * area)
    cy = np.sum((v[:, 1] + v_next[:, 1]) * a) / (6 * area)
    return cx, cy, abs(area)

4. 处理带“洞”的多边形 对于有内环(洞)的多边形,不能直接使用上述方法。标准的处理方式是:

  1. 分别计算外多边形和内环(洞)的重心和面积。
  2. 将内环的面积视为负值。
  3. 使用加权平均公式计算整体重心:总重心 = (外多边形重心*外面积 + 内环重心*内面积) / (外面积 + 内面积),注意内面积为负。

这在实际的GIS数据处理中非常常见,需要根据你的数据格式(如GeoJSON中的 Polygon 和 MultiPolygon)进行相应解析。

掌握了这个核心算法及其变体,你就能应对绝大多数需要计算多边形重心的场景。代码虽短,但背后是坚实的几何原理。下次遇到类似需求,不必再四处搜索或从头推导,直接复制这几行代码,稍作调整即可。

多边形几何中心与重心计算:从概念到工程实践 在计算机图形学、物理模拟和地理信息系统等领域,多边形几何属性的计算是基础且关键的技术。几何中心(顶点中心)作为顶点坐标的算术平均,计算简单但可能位于多边形外部;而重心(质心)是基于面积加权的物理平衡点,计算涉及多边形区域的积分,对于均匀材质的多边形,其重心与几何中心重合,但在物理模拟和CAD等场景中,重心是更准确的选择。理解两者的区别与联系,掌握其核心算法,对于实现精确的碰撞检测、刚体动力学模拟以及地理区域分析至关重要。本文深入探讨了多边形重心计算的通用公式、代码实现细节、数值稳定性优化以及常见问题排查,并 阅读详情

相关推荐

别再混为一谈了!用Python+Shapely实战区分不规则多边形的‘中心’、‘形心’和‘外接矩形中心’

本文深入解析了不规则多边形中心点计算的三种方法:算术中心、形心和外接矩形中心,并通过Python+Shapely实战演示了它们的区别与应用场景。文章详细介绍了每种方法的计算原理、优缺点及适用场景,帮助开发者在GIS、游戏引擎和计算机视觉等领域做出更精准的选择。

weixin_30628077的博客 420

多边形面积,形心(重心?)计算--Python

** 多边形面积,形心(重心?)计算–Python ** 0.参考 1.鞋带公式 2.形心计算 3.代码参考 1.计算高斯面积–鞋带公式 其实简单点就是 **注意:**这两个版本点的下表有点区别,一个从0开始一个从1开始,然后关键一个就是最后一个点+1就成了第一个点。 代码如下: def cal_area(vertices): #Gauss's area formula 高斯面积计算 A = 0.0 point_p = vertices[-1] for point in vert

KindleKin的博客 7103

【实战指南】不规则多边形三种“中心”的Python计算与可视化对比

本文详细解析了不规则多边形三种中心点(几何中心、形心、外接矩形中心)的Python计算方法与可视化对比。通过实际代码示例和应用场景分析,帮助开发者理解不同中心点的特性及适用场景,提升GIS、游戏开发等领域的位置计算精度。

weixin_27872611的博客 94

游戏开发实战:如何用Python快速计算不规则多边形的重心(附完整代码)

本文详细介绍了在游戏开发中,如何利用Python高效、稳健地计算不规则多边形的重心。通过解析鞋带公式核心原理,提供了基础与优化两版代码,重点解决了浮点数精度陷阱,并阐述了如何将计算结果集成到2D物理引擎的碰撞检测与物理模拟中,以提升游戏的真实感与性能。

c7d8e9的博客 210

python 图像特征提取_【图像处理】——Python+opencv实现提取图像的几何特征(面积、周长、细长度、区间占空比、重心、不变矩等)...

转载请注明详细地址本文简单介绍了图像常见几何特征的概念以及求解方法本文介绍了Python和opencv求解几何特征的常用方法目录一、获得轮廓二、面积1、cv2.connectedComponentsWithStats()stats参数解析2、cv2.contourArea()函数三、周长1、cv2.arcLength(contours[0],True)四、细长度1、绘制外接矩形(cv2.recta...

weixin_39938724的博客 3430

【图像处理】——Python+opencv实现提取图像的几何特征(面积、周长、细长度、区间占空比、重心、不变矩等)

转载请注明详细地址 本文简单介绍了图像常见几何特征的概念以及求解方法 本文介绍了Python和opencv求解几何特征的常用方法

python_AI_fans的博客 8187

【形心】不规则多边形形心计算方法(含面积计算)

不规则多边形形心计算若干方法小结这里以凹多边形为例,方便排查所计算坐标不在多边形之外。

胡侃有料的博客 7716

XGBoost特征重要性为0的问题:深度解析与应对策略

在机器学习领域,XGBoost(Extreme Gradient Boosting)作为一款高效且强大的集成学习算法,已经被广泛应用于各类预测任务中。然而,在实际应用过程中,许多数据科学家和工程师们遇到了一个令人困惑的现象——某些特征的重要性值为0。这不仅影响了模型的解释性,还可能导致特征选择过程中的误判。本文将深入探讨这一问题,分析其背后的原因,并提供相应的解决方案。在深入探讨特征重要性为0的问题之前,我们首先需要了解XGBoost是如何计算特征重要性的。XGBoost提供了三种常见的特征重要性计算方法:

cda2024的博客 1706

多边形中心与重心:几何计算与物理模拟的核心差异

在计算机图形学和物理模拟中,几何计算是基础且关键的技术环节。其核心原理涉及对二维或三维空间中形状的数学描述与属性分析,例如通过顶点坐标定义多边形。从技术价值看,精确的几何属性计算是实现高级视觉效果、碰撞检测和物理仿真的基石,直接影响应用的稳定性和真实感。在应用场景上,游戏开发、计算机辅助设计、机器人路径规划等领域都深度依赖这些计算。本文聚焦于多边形中心与重心这两个常被混淆的概念,通过对比顶点算术平均中心与面积加权质心的计算,并结合游戏开发中的锚点设置与物理引擎刚体动力学等具体实践,深入解析了它们在图形处理与

weixin_33875564的博客 383

本地部署静态网站托管平台 Netlify 并实现外部访问(Windows 版本)

Netlify 是一款基于云计算的网站部署和托管平台,专为开发者提供便捷的静态网站和 Jamstack 应用部署服务。它的能力在于将网站构建、部署、托管以及持续集成等流程高度集成,简化了开发和运维的复杂程度。用户无需关心服务器的配置、维护等工作。本文将详细介绍如何在本地安装 Netlify 以及结合路由侠内网穿透实现外网访问 Netlify。

lyxnwct的博客 524

ABAP传输自定义IDOC实例

首先确定出站方和入站方,本例中我使用150作为发送方将200作为接收方。 发送端系统配置 进入tcode-SALE,点击定义逻辑系统,这里我定义D01CLNT150为发送端, D01CLNT200为接收端 2,将逻辑系统分配给对应的client 3,进入tcode-WE31,创建IDOC开发段(segment)这里可以按照实际需求创建想要传输的结构,为求简单我创建了ZKNA1并选取了几个客户主数据的字段作为示例 4,进入tcode-WE30,创建Idoc Ty...

Nathan的博客 4079

【附代码】使用Shapely计算多边形外扩与收缩

本文档介绍如何使用 Shapely Python 包 计算多边形外扩与收缩。如有错误,欢迎指正。如有更好的算法,也欢迎交流!

ymzhu385的博客 2114

DDR内存条选购避坑指南:单Rank vs 双Rank性能实测对比(附2024年颗粒推荐)

本文深入解析了内存条中单Rank与双Rank设计的原理与性能差异。通过实战测试对比,揭示了双Rank内存在高负载场景(如3D渲染、视频剪辑)中凭借Rank Interleaving技术带来的显著性能优势,并提供了2024年针对不同用户需求的DDR4/DDR5内存选购策略与避坑指南。

ik678901的博客 1138

别再手动算了!用Python的Shapely库5分钟搞定不规则多边形形心(附完整代码)

本文介绍如何使用Python的Shapely库快速计算不规则多边形的形心,适用于GIS分析、游戏碰撞检测和工业设计等领域。通过5行代码示例和万能脚本模板,帮助开发者高效处理CSV、GeoJSON等多种数据格式,避免手动计算的复杂性和误差。

weixin_42526101的博客 186

ENSP实战:从零搭建企业级路由交换网络(附完整拓扑图+配置代码)

本文详细介绍了如何使用ENSP从零搭建企业级路由交换网络,包括拓扑设计、IP规划、交换机与路由器配置、路由互通测试及常见故障排查。通过完整的拓扑图和配置代码,帮助读者掌握VLAN隔离、静态路由配置等核心技能,解决实际部署中的典型问题。

weixin_29306875的博客 281

KT148A语音芯片SOP外挂功放芯片8002D的说明_V1

KT148A语音芯片内置8欧姆0.5W的功放,所以一般的应用场景,播放一些提示音音量是足够的。但是有的需求还需要驱动更大的扬声器,实现更大的播放音量,这里我们给出解决方案。KT148A+HAA8002D的组合

qyvhome的博客 2150

通过坐标点位,计算多边形面积

多边形面积 本文使用三角形面积累计法计算多边形面积,就是将多边形按照一个顶点,分割成多个三角形,计算三角形的面积,累加,得到多边形的面积。 当然,这个算法也有一些缺点,当这个多边形比较奇怪的时候,不能将多边形按照一个顶点分割成多个三角形面积之和,比如: 本文先按照常规的多边形进行处理,特殊情况之后再分析。 栗子 由于基本的测量点位坐标都是dat文本格式的,本文采用读取txt/dat格式的文本点位数据,更符合测量的操作。 data的数据如下所示: 这里简单以五个点组成的五边形为例,保存到path中。 d

XC___XC的博客 3723

【宠物识别系统】设计框架

能跑通的 Demo。收集 10,000 张同品种但不同个体的图片。训练ArcFace模型,验证准确率能否达到 99% 以上。搭建Milvus向量数据库。开发移动端 App/小程序。加入“图像质量检测”和“用户反馈纠错”功能。你是更偏向于做软件服务(如寻宠App、保险API),还是做软硬结合的产品(如智能喂食器)?这决定了我们下一步是深挖云端高并发架构,还是边缘端模型压缩。更偏向于软件,应用更广泛些,继续既然专注于纯软件/SaaS (Software as a Service) 方向。

百态·数智思维 | 聚焦大数据、量化与未来AI 1414

【Python】将不规则凸多边形映射到单位正方形

在机器学习领域常需要将数据归一化后才能进行训练等操作,一维数据很容易处理,但对于二维的不规则数据,则需要一些手段,本文就是用来解决这个问题此外,有时候希望可以用循环遍历一个不规则的二维平面,显然难以直接实现,此时将该平面映射到一个规则的矩形范围内,就能轻松实现这个目标。

嵌入式、机器人、深度学习 998

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

OpenCV—轮廓操作一站式详解:查找/筛选/绘制/形状描述与重心标注(Python版)

OpenCV—轮廓操作一站式详解:查找/筛选/绘制/形状描述与重心标注(Python版) 为了方便使用的Python同学,将上一篇文章用Python重写了一遍,其中一些OpenCV的Python接口说明将后续持续更新。 轮廓是定义或限定形状或对象的边或线,是机器视觉中的常用的概念,多用于目标检测、识别等任务。关于OpenCV轮廓操作,尤其是级别及如何使用轮廓级别进行筛选等问题,相关文章比较...

iracer的博客 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

别再傻傻分不清!用Python+Shapely库5分钟搞懂多边形中心、形心、外接矩形中心的区别与计算

本文通过Python和Shapely库详细解析了不规则多边形的中心、形心和外接矩形中心的区别与计算方法。针对不同应用场景(如游戏开发、地理信息系统和UI设计),提供了实战代码示例和优化建议,帮助开发者快速掌握几何计算的核心概念。

weixin_33709219的博客 701

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java计算一个多边形的重心_Grasshopper:一个无情的“造山”工具

嗨大家好久不见!这次介绍一个在Grasshopper里用python实现的一个根据坡度生形的小算法。关于这篇文章,其实我最开始只是想做一个记录多段线偏移(offset)过程中点的运动轨迹的工具,后来发现这个工具好像可以拓展成一个比较有意思的三维生形工具,然后一查资料,果然有大佬已经做过了。那么这次我再来当一次搬运工,在自己熟悉的平台Grasshopper上对该算法进行一个实践,来...

weixin_35253177的博客 823

Lifting the Stone(多边形重心问题)

#include #include #include using namespace std; struct node{ double x,y; }; //double area(node a,node b) //{ // return //} int main() { int n,m,i; node p1,p2,p; //double tem,sare; c

lois_123的专栏 471

hdu 1115:Lifting the Stone(计算几何,求多边形重心。 过年好!)

Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4819    Accepted Submission(s): 2006 Problem Description There are many sec...

weixin_33769207的博客 156
上一篇: DHCP地址池深度解析:接口与全局模式的应用场景与配置实战
下一篇: 行人仿真软件实战选型指南:从Legion到Massmotion,如何为你的项目精准匹配?
html8
博客等级 码龄8年 105粉丝 1092原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值