用相同的高度和角半径创建的圆角矩形,但似乎随着矩形变宽,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()
问题可能出在 canvas.scale() 方法中如何计算或使用 bw(宽度)和 bh(高度)值。
如果宽度和高度的计算方式不同,或者传递给 canvas.scale() 的值之间存在差异,则生成的矩形可能不会按预期显示。
另一种可能性是 getScreenRotate() 方法正在影响矩形的外观,特别是如果它正在改变画布的纵横比或改变矩形的坐标。
没有关于其余代码和预期结果的更多信息,很难提供更具体的解决方案。但是,仔细检查正在使用的值并确保画布设置正确应该有助于解决问题。