绘制具有不同重叠边界的矩形边框的算法

我正在寻找有关如何在矩形周围绘制边框的信息,并为重叠边框提供略微不同的渲染.这些矩形是用户生成的,因此它们可以具有各种尺寸和重叠.用户指定z顺序.这是一个例子:

《绘制具有不同重叠边界的矩形边框的算法》

我的数据使用简单的rect数据结构建模.为简单起见,我期望用线绘制所有边界(即使没有重叠).我打算在浏览器中使用SVG绘制矩形和边框,但我只是在寻找与平台无关的通用解决方案. .

这个问题域对我来说是新的.我在这方面没有多少经验,但我很乐意接受我能得到的信息.

最佳答案 从图片中可以看出,矩形的边框仅受其上方矩形的影响.

从上到下依次绘制矩形.对于要绘制的下一个矩形的八个角邻接边对中的每一个,循环遍历所有当前绘制的矩形以找到包含角的矩形并重叠边的最长部分.将边缘的该部分渲染为重叠.

如果这太慢,请使用二维分段树来存储所有当前绘制的矩形,以便可以快速识别包含给定角的矩形.

点赞