【问题标题】:Canvas: Dividing Rectange in several sub-rectangles画布:将矩形划分为几个子矩形
【发布时间】:2020-01-16 13:55:09
【问题描述】:

这是一个概念性问题,从这里开始:
我应该创建、编辑、保存和重用一个自定义视图,它应该由一个父矩形和 12 个内部矩形/多边形组成。我应该能够从代码中引用它们中的每一个。

最简单的解决方案是简单地绘制 12 个矩形,一个挨着一个,但它可能太重了。我在想的是画一个巨大的矩形并将其分成几部分(例如 GIS 中的多边形),但我没有找到这样的东西。
如果有人能提出一些轻量级的概念,我会非常高兴。

【问题讨论】:

    标签: android android-canvas polygon


    【解决方案1】:

    一般解决方案怎么样,您可以像这样对矩形进行建模:

    data class Coord(val x: Float, val y: Float)
    
    data class Rectangle(val topLeft: Coord, val bottomRight: Coord, val childRectangles: Collection<Rectangle>)
    

    然后,你就有了这样的绘图函数:

    fun draw(rectangle: Rectangle, canvas: Canvas, paint: Paint) {
        canvas.drawRect(
                rectangle.topLeft.x,
                rectangle.topLeft.y,
                rectangle.bottomRight.x,
                rectangle.bottomRight.y,
                paint
        )
    
        rectangle.childRectangles.forEach { childRectangle ->
            draw(childRectangle, canvas, paint)
        }
    }
    

    【讨论】:

      【解决方案2】:

      回到问题 -> 最后,我通过扩展 RectF 并对其进行了一些修改以获得我需要的东西,分别创建了每个直角。因为它是静态的并且没有性能问题,所以我保留了它。

      【讨论】:

        猜你喜欢
        • 2023-04-03
        • 2018-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多