【问题标题】:Google closure - non overlapping tiled rectangles谷歌关闭 - 非重叠平铺矩形
【发布时间】:2013-07-31 05:49:34
【问题描述】:

我正在尝试使用 google 闭包来编写一个应用程序,该应用程序覆盖具有非重叠矩形的平面区域。我的一个要求是能够在平面上取一个点(可能带有任何浮点坐标)并识别覆盖该点的单个矩形。不幸的是,这导致使用闭包的矩形类出现问题。

例如,考虑两个单位维度的矩形,其左上角位于 (0,0) 和 (1,1)。我通常认为这些矩形是不重叠的,但是闭包的矩形类告诉我它们都包含点 (1,1)。

有没有一种方法可以让闭包考虑这些矩形不重叠?或者另一种生成包含所有可能坐标但不重叠的矩形的方法(例如,指定矩形一侧的大小为小于 1 的最大数字的方法)?

【问题讨论】:

    标签: javascript math google-closure


    【解决方案1】:

    对于您的问题:您不能考虑这些矩形不重叠。而且你不能生成覆盖所有空间但不重叠的矩形。

    但是你走错了路。只需定义哪些边属于哪个正方形 - 例如每个方块都有自己的顶部和左侧边框。现在使用闭包来获取所有接触给定点的矩形,并忽略那些点是底角或右角的一部分。

    一些注意事项:正方形不能拥有完整的左边框,因为两个正方形在该边框上共享一个像素。因此,正方形不拥有其左下角的像素。不过,我解释这些步骤的方式可以解决这个问题。您还需要考虑您希望在覆盖空间的右下角发生什么。如果您的空间是矩形大小的倍数,那么您要么必须在右下角添加例外,否则矩形将只有线条,右下角的线条甚至只有一个点。

    【讨论】:

    • 谢谢;我认为更简单的方法实际上是使用我自己的矩形类。开发一个并不难,使用半开范围可以解决这个问题。我只是想知道为什么谷歌自己不这样做,而几乎所有其他人都这样做......
    猜你喜欢
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2019-07-27
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多