Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
Dart 如何在图像内部的任意点上旋转(并可能设置动画)图像?_Dart_Flutter - Fatal编程技术网

Dart 如何在图像内部的任意点上旋转(并可能设置动画)图像?

Dart 如何在图像内部的任意点上旋转(并可能设置动画)图像?,dart,flutter,Dart,Flutter,我使用的是颤振,我希望图像在我定义的点上旋转。例如,我希望图像在其右上角设置旋转(向下摆动)的动画。如何执行此操作?这里有一个解决方案,它使用类指定要旋转的点 如果您不想设置动画,请执行您想要的操作 返回新的转换( 变换:新矩阵x4.rotationZ(math.PI), 对齐:分馏偏移。右下角, 孩子:孩子, ); 如果确实要设置动画,则几乎可以执行所需操作,但对齐方式不可配置。您可以制作自己的可配置版本: 导入“dart:ui”; 导入'dart:math'作为数学; 进口“包装:颤振/材

我使用的是颤振,我希望图像在我定义的点上旋转。例如,我希望图像在其右上角设置旋转(向下摆动)的动画。如何执行此操作?

这里有一个解决方案,它使用类指定要旋转的点

如果您不想设置动画,请执行您想要的操作

返回新的转换(
变换:新矩阵x4.rotationZ(math.PI),
对齐:分馏偏移。右下角,
孩子:孩子,
);
如果确实要设置动画,则几乎可以执行所需操作,但对齐方式不可配置。您可以制作自己的可配置版本:

导入“dart:ui”;
导入'dart:math'作为数学;
进口“包装:颤振/材料.省道”;
void main(){
runApp(新材料)PP(
标题:“旋转演示”,
主页:新的RotateDemo(),
));
}
///设置小部件围绕轴心点旋转的动画。
类PivotTransition扩展了AnimatedWidget{
///创建旋转变换。
///
///[turns]参数不能为null。
枢轴过渡({
关键点,
this.alignment:分馏loffset.center,
@所需的动画回合,
这个孩子,
}):super(key:key,listenable:turns);
///控制子对象旋转的动画。
///
///如果“转向”动画的当前值为v,则子对象将为
///涂漆前旋转v*2*pi弧度。
动画获得回合=>listenable;
///要绕其旋转的轴点。
最终偏移校准;
///树中此小部件下方的小部件。
最后一个孩子;
@凌驾
小部件构建(构建上下文){
最终双圈值=圈数.value;
最终矩阵4变换=新矩阵4.旋转Z(旋转值*math.PI*2.0);
返回新变换(
变换:变换,
对齐:对齐,
孩子:孩子,
);
}
}
类RotateDemo扩展StatefulWidget{
State createState()=>新的RotateDemoState();
}
类RotateDemoState使用TickerProviderStateMixin扩展状态{
AnimationController _AnimationController;
@重写initState(){
super.initState();
_animationController=新的animationController(
持续时间:常数持续时间(毫秒:3000),
vsync:这个,,
)…重复();
}
@重写dispose(){
_animationController.dispose();
super.dispose();
}
@凌驾
小部件构建(构建上下文){
归还新脚手架(
正文:
新中心(
子:新的数据透视转换(
转动:_animationController,
对齐:分馏偏移。右下角,
子容器:新容器(
装饰:新盒子装饰(背景颜色:Colors.gray.shade200),
宽度:100.0,
儿童:新的FlatterLogo(样式:FlatterLogStyle.horizontal),
),
),
),
);
}
}
此示例围绕其右下角旋转颤振徽标


如果你喜欢冒险,你可以发送一个pull请求,以使
RotationTransition
的对齐方式可配置。

设置动画,或者只是以不同的角度绘制?是否可以旋转360度?@stucked_overflow假设你谈论的是360度(与弧度相反),旋转360度和根本不旋转是一样的。我期待着像汽车画廊一样的图像会在360度方向旋转