gpt4 book ai didi

java - 在 android canvas 上绘制一堆旋转的矩形

转载 作者:搜寻专家 更新时间:2023-11-01 07:49:45 25 4
gpt4 key购买 nike

我有一个任务是在 Canvas 上绘制许多矩形,但它们都有一个旋转角度,它们必须在 Canvas 上旋转。我在搜索此问题的解决方案时遇到的许多建议都指出了绘制矩形和旋转 Canvas (Canvas.rotate(angle)) 的方法,但它会旋转所有 Canvas 并且只能使用一个矩形。在 Canvas 上绘制许多旋转矩形的最佳方法是什么?由于时间效率和内存的原因,我想绘制矩形(单色,使用 Paint),但不想绘制位图。

我目前要做的主要方法是创建大量 Canvas 并在每个 Canvas 上绘制一个矩形,然后根据矩形的角度旋转 Canvas 。我认为这不是一个聪明的方法,因为有很多 Canvas ,我应该为每个 Canvas 创建一个单独的 SurfaceHolder,这是一团糟......

请注意,对于每个矩形,我都有其所有 4 个角的坐标、宽度、高度、中心和角度。

最佳答案

您可以旋转 Canvas 来绘制每个矩形,然后恢复原来的方向。然后为下一个矩形设置新的旋转,绘制、存储和重复。

大概是这样的:

  //Save and rotate canvas 
canvas.save();
canvas.rotate(angle, pivotX, pivotY);

canvas.drawRect(...);

//restore canvas
canvas.restore();

// rotate and draw the second rectangle
canvas.rotate(angle, pivotX, pivotY);

canvas.drawRect(...);

canvas.restore();

// repeat as necessary

每个矩形的“角度”都不同。

关于java - 在 android canvas 上绘制一堆旋转的矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com