Mat*_*Yus 9 android canvas path rotation rect
我创建一个特定大小的矩形,现在我想将它旋转到45度,我使用canvas.rotate,矩阵,但不工作.如何在android中旋转画布的正确方法?我对Path.Direction.CW感到好奇,是否用于轮换?但我没有在Path()中看到任何旋转功能
paint.setAntiAlias(true);
paint.setStrokeWidth(2);
paint.setColor(Color.BLUE);
paint.setAlpha(75);
Path path = new Path();
path.addRect(166, 748, 314, 890, Path.Direction.CW);
canvas.rotate(45);
canvas.drawPath(path, paint);
Run Code Online (Sandbox Code Playgroud)
Ale*_*lex 16
要绘制旋转的矩形,您需要在绘制之前旋转画布(如果您正在绘制任何其他内容,则将其向右旋转至右侧).Canvas.rotate()只是改变画布的变换矩阵,它转换调用后绘制的形状.
canvas.save();
canvas.rotate(45);
canvas.drawRect(166, 748, 314, 890, paint);
canvas.restore();
Run Code Online (Sandbox Code Playgroud)
Path.Direction与旋转变换无关.来自文档:
指定将闭合形状(例如,rects,ovals)添加到路径时的方向.
如果要从(x,y)点绘制东西,则必须围绕(x,y)点旋转画布。为此,您应该使用
canvas.rotate(45,x,y);
Run Code Online (Sandbox Code Playgroud)
所以,
canvas.save();
canvas.rotate(45,x,y);
//all drawing from (x,y) point
canvas.restore();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13923 次 |
| 最近记录: |