【发布时间】:2018-01-18 21:12:44
【问题描述】:
区块链将存储一个结构数组:x1,y1,x2,y2 (uint) 来表示矩形的左上角和右下角。
添加新矩形时,我需要验证它不与区块链中的任何其他矩形重叠。
这就是我想做的事情。为点创建另一个结构体,包含:x、y、主矩形数组的索引。
我将有两个数组,一个按 X 排序,另一个按 Y 排序。定义每个矩形的两个角在两个数组中都有条目。
为了验证新矩形,我搜索 X 数组中的任何条目是否存在于 2 个 X 之间。 Y 也是如此。如果返回的 X 和 Y 的任何条目具有相同的“主数组”索引,则存在重叠。我还必须验证新矩形是否完全在另一个矩形内。
我仍在尝试使用 Solidity。虽然这似乎是一个非常昂贵的过程,并且可能无法扩展。我必须多次扫描 2 个数组来验证我添加的每个新矩形。
有没有更有效的方法来验证我的新矩形而无需扫描 2 个数组?
另一种选择是只保留 1 个数组,并针对新的矩形验证每个矩形。同样,这听起来相当昂贵。
【问题讨论】:
标签: solidity