Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android如何旋转画布矩形_Android_Canvas_Path_Rotation_Rect - Fatal编程技术网

android如何旋转画布矩形

android如何旋转画布矩形,android,canvas,path,rotation,rect,Android,Canvas,Path,Rotation,Rect,我创建了一个特定大小的矩形,现在我想把它旋转45度,我使用canvas.rotate,matrix,但不工作。在android中如何正确地旋转画布?我对Path.Direction.CW很好奇,它是用来旋转的吗?但是我在Path()中没有看到任何旋转函数 正确的方法应该是这样的: Path path = new Path(); path.addRect(166, 748, 314, 890, Path.Direction.CW); canvas.save(); // first save the

我创建了一个特定大小的矩形,现在我想把它旋转45度,我使用canvas.rotate,matrix,但不工作。在android中如何正确地旋转画布?我对Path.Direction.CW很好奇,它是用来旋转的吗?但是我在Path()中没有看到任何旋转函数


正确的方法应该是这样的:

Path path = new Path();
path.addRect(166, 748, 314, 890, Path.Direction.CW);
canvas.save(); // first save the state of the canvas
canvas.rotate(45); // rotate it
canvas.drawPath(path, paint); // draw on it
canvas.restore(); // restore previous state (rotate it back)

要绘制旋转的矩形,您需要在绘制之前旋转画布(如果要绘制任何其他内容,请将其旋转回右侧向上)
Canvas.rotate()

canvas.save();
canvas.rotate(45);
canvas.drawRect(166, 748, 314, 890, paint);
canvas.restore();
方向与旋转变换无关。从:

指定闭合形状(例如矩形、椭圆形)在移动时的方向 添加到路径中


如果要从
(x,y)
点绘制某些内容,必须围绕
(x,y)
点旋转画布。为此,您应该使用

canvas.rotate(45,x,y);
所以


如果你对路径和方向感兴趣,为什么不用谷歌呢?第一击-。为什么在绘制路径之前要旋转画布?你想达到什么目的?它说顺时针和逆时针,我不明白它的意思。很简单,我只想旋转我创建的矩形“path.addRect(166748314890,path.Direction.CW);”。若我移除canvas.rotate(45),它将在屏幕上显示一个矩形,现在我想将其旋转45度。已经在谷歌上搜索过了,但是找不到任何解决方案。你已经旋转了画布,然后画出了路径。因此,只有在旋转路径(看起来什么都没有)之前绘制的对象。为什么不画路径然后旋转?你是说像这样?paint.setAntiAlias(真);油漆。设置行程宽度(2);油漆。设置颜色(颜色。蓝色);油漆。setAlpha(75);路径路径=新路径();addRect(166748314890,path.Direction.CW);画布.绘制路径(路径,绘制);帆布。旋转(45);它不工作,一样,没有变化
canvas.rotate(45,x,y);
canvas.save();
canvas.rotate(45,x,y);
//all drawing from (x,y) point
canvas.restore();