转角不够圆

问题描述 投票:0回答:1

用相同的高度和角半径创建的圆角矩形,但似乎随着矩形变宽,x 半径变得越来越长。

角不是我想象的曲线(蓝色笔划一)。

我在设置画布时错过了什么吗?

    canvas.save()
    canvas.translate(body.position.x * mDpm, body.position.y * mDpm)
    canvas.scale(bw * mDpm, bh * mDpm)
    canvas.rotate(getScreenRotate(body.angle))
    mPaint.style = Paint.Style.FILL
    mPaint.color = mColorFill
    val rect = RectF(-1f, -1f, 1f, 1f)
    canvas.drawRoundRect(rect, bh*2, bh*2, mPaint)
    canvas.restore()

java android kotlin box2d drawrect
1个回答
0
投票

问题可能出在 canvas.scale() 方法中如何计算或使用 bw(宽度)和 bh(高度)值。

如果宽度和高度的计算方式不同,或者传递给 canvas.scale() 的值之间存在差异,则生成的矩形可能不会按预期显示。

另一种可能性是 getScreenRotate() 方法正在影响矩形的外观,特别是如果它正在改变画布的纵横比或改变矩形的坐标。

没有关于其余代码和预期结果的更多信息,很难提供更具体的解决方案。但是,仔细检查正在使用的值并确保画布设置正确应该有助于解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.