博客
关于我
poj1113——求凸包的周长
阅读量:656 次
发布时间:2019-03-15

本文共 882 字,大约阅读时间需要 2 分钟。

为了找到围绕王国城堡的最小可能长度的围墙,我们需要将每个顶点向外扩展一定距离。具体步骤如下:

  • 计算原多边形的周长:遍历每个顶点,计算相邻顶点之间的欧氏距离之和,即为原多边形的周长。

  • 计算扩展后的总周长:每个顶点扩展后的圆弧长度为πL,总共有N个顶点,因此总周长等于原周长加上N×πL。

  • 四舍五入结果:将最终结果四舍五入到最近的整数。

  • 以下是实现代码:

    import mathn, L = map(int, input().split())points = [tuple(map(int, input().split())) for _ in range(n)]# Calculate the perimeter of the original polygonperimeter = 0.0for i in range(n):    x1, y1 = points[i]    x2, y2 = points[(i+1) % n]    dx = x2 - x1    dy = y2 - y1    dist = math.hypot(dx, dy)    perimeter += dist# Total perimeter after expansiontotal = perimeter + n * math.pi * L# Round to the nearest integerresult = round(total)print(result)

    步骤解释:

  • 读取输入:首先读取顶点数量N和最小允许距离L,然后读取每个顶点的坐标。

  • 计算原周长:遍历每个顶点,计算其与下一个顶点的欧氏距离,并累加得到原多边形的周长。

  • 计算扩展后的周长:每个顶点扩展成一个圆,半径为L,每个圆贡献一个半圆的周长πL,总共有N个半圆,因此总扩展长度为N×πL。

  • 总周长:将原多边形的周长与扩展后的长度相加,得到总周长。

  • 四舍五入结果:将总周长四舍五入到最近的整数,确保结果精确到8英寸(1英尺=12英寸)。

  • 这个方法确保了围墙的最小长度,同时满足每个顶点到围墙的距离至少为L。

    转载地址:http://wwfmz.baihongyu.com/

    你可能感兴趣的文章
    PYTHON-模块定义 搜索路径
    查看>>
    Python-爬虫工程师-面试总结
    查看>>
    Python-类与文件读取结合
    查看>>
    python-类思想-实现简单增删查改
    查看>>
    python-网络编程
    查看>>
    python写入文件出现空行
    查看>>
    PYTHON-返回给定x的多边形路径的y坐标
    查看>>
    python-进程池与线程池,协程
    查看>>
    Python-通过函数传递变量
    查看>>
    Python内置函数详解——总结篇
    查看>>
    Python.对象集合中的标识.和散列
    查看>>
    Python.硒.拖放错误“AttributeError:move_to 需要 WebElement“
    查看>>
    Python内置函数详解
    查看>>
    Python/Kivy:从一个类调用函数到另一个类并在 Python 中显示小部件
    查看>>
    Python/Kivy:我可以在双击标签时调用函数吗
    查看>>
    python内置函数5-frozenset()
    查看>>
    Python/Plotly:如何使用要显示的信息自定义悬停模板?
    查看>>
    Python/Selenium - 无法单击 www.instagram.com 上的“接受 cookie“按钮
    查看>>
    Python内置函数(35)——next
    查看>>
    python写入mysql
    查看>>