Dro*_*ror 5 java geometry computational-geometry
我正在寻找一种在凹面或凸面多边形内找到轴对齐矩形的方法.
我一直在寻找网络,我能找到的最接近的解决方案只适合凸多边形,而不是凹多边形.例如 -
说实话,我不是一个伟大的数学专家,所以我宁愿找到代码示例或代码库,但我想我可以自己处理一些数学,或者找人来帮助我.
如果解决方案也可以在Java中,那将是非常好的,但也许我太贪心了:P
编辑:回应罗素的评论,我正在添加更多信息.
有界矩形应尽可能大.矩形旨在包含其中的文本.最多1到4个字,支持文本换行.因此,如果它太薄,我会将文本垂直放置而不是水平放置.所以对于宽高比,我想它需要足够包含1-4个单词垂直或水平与自动换行.如果矩形很小,我可以调整文本大小,但最好是文本尽可能大.
另一个很好的要求是,如果多边形的一般方向是对角线,并且当对角线方向对齐时文本会更好,那么矩形不一定与轴对齐,而是与多边形的对角线.我想这个要求让这个变得非常棘手,但是如果你们认为它可能那么它会很棒!
我想我现在已经涵盖了所有的要求.:P
谢谢!
由于您想对文本执行此操作,因此我假设速度很重要,而准确性不太重要。那么我建议这样:
另请参见拼图:找到最大的矩形(最大矩形问题)。
编辑:我刚刚注意到如果多边形以一定角度定向,则该算法需要调整的请求。我的建议是找到多边形的主轴来检查方向,旋转它以使主轴与 x 轴对齐,然后应用上面的算法。
另外,我想指出的是,“删除单元格”实际上只是意味着在表示网格单元格的二维数组中设置一个位。