vitaviva/compose-tetris

绘画屏幕边框的公式

Opened this issue · 1 comments

cxp-13 commented

以绘制左上部分举例:
注释掉的是原本的代码
我个人理解是按x轴的中心去绘制,然后垂直下滑到y轴的中心点。因为x和y的边长不一样。
但是代码的两个点的y,都看不明白是啥意思。并不是在轴的中心点。

sample:
boder

var path = Path().apply {
        moveTo(topLef.x, topLef.y)
        lineTo(topRight.x, topRight.y)
        lineTo(
            topRight.x / 2 + topLef.x / 2,
//            topLef.y + topRight.x / 2 + topLef.x / 2 - topLef.x
            topLef.y + topRight.x / 2 - topLef.x / 2
        )
        lineTo(
            topRight.x / 2 + topLef.x / 2,
//            bottomLeft.y - topRight.x / 2 + topLef.x / 2
            bottomLeft.y / 2 + topLef.y / 2,
        )
        lineTo(bottomLeft.x, bottomLeft.y)
        close()
    }
    drawPath(path, Color.Black.copy(0.5f))

p1 p2 两个点不需要是y轴的中心。这块为了画屏幕的边框的阴影效果,屏幕是长方形的所以两条斜线在x轴无法闭环,拉一条y线闭环而已,没有特别用意。