矩形内最大的空矩形

2024-03-01

我的数学不太好,所以我很难将公式转换为代码,而且我在谷歌上找不到任何现成的东西。我有一个包含很多小矩形的大矩形......我需要做的就是计算最大的空矩形。任何人都可以帮助我吗?

这就是我想出的……没什么可说的,这是一个很大的失败。

Rect result = new Rect();

for (Double l = 0; l < bigRect.Width; ++l)
{
    for (Double t = 0; t < bigRect.Height; ++t)
    {
        Double h = 0;
        Double w = 0;

        while ((h <= bigRect.Width) && (w <= bigRect.Height))
        {
            Rect largestEmpty = new Rect(l, t, w, h);

            if (smallRects.TrueForAll(smallRect => !smallRect.IntersectsWith(largestEmpty)) && ((largestEmpty.Height * largestEmpty.Width) > (result.Height * result.Width)))
                result = largestEmpty;
            else
                break;

            ++h;
            ++w;
        }
    }
}

从你的它表示大矩形中有一组点(我们称之为 ASD),您将找到不包含该组 ASD 点的最大矩形。查看您的代码,您似乎没有(直接)合并这些要点。我将从较小的矩形中提取点并创建 ASD 集。由于您使用的是 double 类型,因此您应该能够访问这些点,否则算法的运行时间将会明显增加,因为您需要检查特定范围(整个大矩形)内所有可能的双精度数。使用这些点,我会尝试找到彼此距离最短的点 (sqrt(dx^2+ dy^2)) (最短不应包含任何点),然后转到下一个最短的点,看看是否有任何点换句话说,创建所有组合的顺序列表(不是排列,(a,b) 到 (c, d) 应该 == (c, d) 到 (a,b))按距离排序在他们之间。可能不是最佳的,但可以完成工作。

编辑:除了较小矩形的对角线之外的所有订单对都应该在订单列表中,因为较小的矩形不应该被连接,您还可以排除具有相同 x 或 y 值的对。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

矩形内最大的空矩形 的相关文章

  • 为什么大多数 C 开发人员使用 Define 而不是 const? [复制]

    这个问题在这里已经有答案了 在许多程序中 define与常量具有相同的用途 例如 define FIELD WIDTH 10 const int fieldWidth 10 我通常认为第一种形式优于另一种形式 它依赖于预处理器来处理基本上是
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • IronPython:没有名为 json 的模块

    我安装了 IronPython 我的 python 文件如下所示 import sys print sys version import json 运行它的代码 var p Python CreateEngine var scope p C
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 在非活动联合成员上使用“std::addressof”是否定义明确[重复]

    这个问题在这里已经有答案了 下面的代码是尝试实现constexpr的版本offsetof在 C 11 中 它可以在 gcc 7 2 0 和 clang 5 0 0 中编译 这取决于申请std addressof工会非活跃成员的成员 这是明确
  • C# 中条件编译符号的编译时检查(参见示例)?

    在 C C 中你可以这样做 define IN USE 1 define NOT IN USE 1 define USING system 1 system 1 IN USE 进而 define MY SYSTEM IN USE if US
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 当模板类不包含可用的成员函数时,如何在编译时验证模板参数?

    我有以下模板struct template
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 应用对数来导航树

    我曾经知道一种使用对数从树的一片叶子移动到树的下一个 有序 叶子的方法 我认为它涉及获取 当前 叶子的位置值 排名 并将其用作从根向下到新目标叶子的新遍历的种子 一直使用对数函数测试来确定是否沿着右或左节点向下到达叶子 我已经不记得如何运用
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • 在 Windows 命令终端中启动 R

    我不知道如何在 Windows 命令终端中启动 R 我跑cmd键入后打开命令提示符R rcmd start R并尝试我发现的其他可能性 但我有一个错误 R is not recognized as an internal or extern
  • 架构arm64解析的未定义符号

    我正在尝试在我的应用程序中实现解析 这里的问题是我收到这些奇怪的错误 我不知道它们的含义 我尝试过 1 更改架构 但最新版本的Xcode不允许我设置自己的架构 例如arm64 2 我尝试删除可能有冲突的 SDK Dropbox 3 我已经链
  • 有选择地恢复或签出 Git 中文件的更改?

    是否有命令允许您部分撤消对工作目录中一个或多个文件的更改 假设您对一个文件进行了多次编辑 但您意识到想要将某些更改撤消回已提交状态 但不想将其他更改撤消 我正在设想一个选项git checkout这很像git add p 即它会逐个检查文件
  • 从 pandas 数据帧的列中提取主题标签

    我有一个数据框df 我想从 Max 45 的推文中提取主题标签 Max Tweets 42 via VIE unlike at fashion 42 Ny trailer katamaritribute ps3 45 Saved a bab
  • 检查路径是否会因 open_basedir 而失败

    是否可以在失败之前检查一下 if is in open basedir path 您可以使用ini get http php net manual en function ini get php获取 open basedir 的当前值以检查
  • 仅当表中尚不存在记录时插入记录

    我想知道是否有办法仅在表尚未包含该记录时才将记录插入表中 是否有一个查询可以执行此操作 或者我需要一个存储过程 你没有说 SQL Server 是什么版本 如果 SQL Server 2008 你可以使用MERGE http technet
  • 如何制作 PHP SOAP 客户端并将结果 xml 存储在 php 变量中

    我正在使用 PHP 以前从未使用过 SOAP 和 PHP 我需要建立Soap PHP 客户端它正在调用并从 a 检索信息Soap 服务器 NET Web 服务 我目前正在努力获取信息荷兰医疗保健系统的医生 对于在荷兰医疗保健系统中注册的每位
  • 错误 LNK2001:无法解析的外部符号“public:静态类 sf::RenderStates const sf::RenderStates::Default”

    这是代码 Engine h include
  • Symfony 3.4 和 Fixtures Bundle 捆绑版本 3.0 存在问题

    我正在尝试从以下位置配置捆绑包 https symfony com doc master bundles DoctrineFixturesBundle index html https symfony com doc master bund
  • 如何在启动器图标中添加类似像素的活动快捷方式?

    Since the release of pixel series there has been this feature to add activity shortcuts in application icon itself by lo
  • 替换 node.js 中文本文件中的字符串

    我正在使用node js 我想读取带有一些占位符字符串的文件 并在提供文件之前动态替换它们 这不是 HTML 文件 因此模板引擎将无法工作 我怎样才能做到这一点 如果模板引擎太过分了 就使用string replace temp Hello
  • 用不同版本的 pandas 读取 pickle

    我无法读取使用不同版本的 Python pandas 保存的 pickle 文件 我知道以前曾在这里问过这个问题 但是提供的解决方案使用pd read pickle my file pkl 也不工作 我认为 但我不确定 这些 pickle
  • r 中的“部分”枢轴宽

    我有一个如下所示的数据框 Time Y 1 2 1 3 1 2 2 5 2 7 2 5 3 10 3 9 3 8 我想创造一些看起来像 Time R1 R2 R3 1 2 3 2 2 5 7 5 3 10 9 8 我必须保留时间列以进行进一
  • gccgo 上的精确

    当尝试在 Precise 上与 gccgo 链接时 出现以下链接错误 matt matt 1005P src gopath src meme gccgo cmd meme main go o meme usr bin ld cannot f
  • 通过函数传递表达式

    我在用着data table包并尝试编写一个函数 如下所示 require data table Function definition f function path key table data table read delim pat
  • Rvest html_nodes span div 和 Xpath

    我正在尝试通过阅读 XPath 代码来抓取网站 当我进入开发人员部分时 我看到这些行 span class js bestRate show 我想抓取 data abc 的所有值 假设网站上的每个元素都是一部电影 所以我想抓取页面上每部电影
  • SyncStateNotFound 错误:如何修复或避免?

    我使用 Microsoft Graph API 增量查询定期下载一些信息 消息 联系人 事件 但有时我会收到此错误 error code SyncStateNotFound innerError date 2018 06 01T06 31
  • 如何在 Watin 中通过标签名称查找元素?

    如何使用 Watin 使用 TagName 来查找特定元素或元素列表 从 WatiN 2 0 beta 1 开始 这已更改为 ie ElementWithTag h1 constraint 使用 Find XXX 方法时会创建约束 这是一个
  • Facebook ShareDialog 在完成时始终返回 .canceled

    共享对话框打开 Facebook 应用程序 尽管内容已成功共享 但我总是收到 取消打回来 在这两种情况下 当我取消共享时和共享成功时 知道出了什么问题吗 Pod 版本 Using Bolts 1 8 4 Using FBSDKCoreKit
  • 矩形内最大的空矩形

    我的数学不太好 所以我很难将公式转换为代码 而且我在谷歌上找不到任何现成的东西 我有一个包含很多小矩形的大矩形 我需要做的就是计算最大的空矩形 任何人都可以帮助我吗 这就是我想出的 没什么可说的 这是一个很大的失败 Rect result