gpt4 book ai didi

android - 在特定点绘制旋转路径

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:50:19 27 4
gpt4 key购买 nike

我正在处理自定义 View (extends View)并使用 onDraw 方法。

我做了一条箭头路径:

    ARROW_PATH = new Path();
ARROW_PATH.setLastPoint(20, 37);
ARROW_PATH.lineTo(14, 25);
ARROW_PATH.lineTo(18, 26);
ARROW_PATH.lineTo(17, 4);
ARROW_PATH.lineTo(23, 4);
ARROW_PATH.lineTo(22, 26);
ARROW_PATH.lineTo(26, 25);
ARROW_PATH.close();

在不同的场景下需要旋转描绘一定的角度,我需要在 View 中的特定坐标处绘制它。坐标也会根据场景发生变化。

我试过使用 Canvas.rotate 但是,当 pxpy 时,路径的方面看起来是倾斜的> 值不相等(py > px 时箭头变窄变高。

我也试过 Canvas.rotate(angle, 0, 0); 然后 ARROW_PATH.moveTo(x, y); 但看起来坐标是旋转任意角度使得计算所需坐标变得非常困难。

理想情况下,我想旋转路径而不是 Canvas ,但我认为 API 不支持此操作。

有人可以建议一个更好的方法来解决这个问题吗?

谢谢,p。

最佳答案

这是永久旋转路径的正确方法(它将保持这种状态直到下一次应用矩阵):

Matrix mMatrix = new Matrix();
RectF bounds = new RectF();
mPath.computeBounds(bounds, true);
mMatrix.postRotate(myAngle, bounds.centerX(), bounds.centerY());
mPath.transform(mMatrix);

关于android - 在特定点绘制旋转路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763231/

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