加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

dart – 如何围绕指定的锚点在2D中旋转Container小部件?

发布时间:2020-12-14 14:55:50 所属栏目:百科 来源:网络整理
导读:我想对Container小部件执行一个非常简单的2D旋转(包含一些其他小部件.)此小部件将围绕中心的单个固定点旋转,没有变形. 我尝试使用带有Matrix4.rotationZ的transform属性,这在某种程度上有效 – 但是锚点位于左上角,而不是在中心.是否有一种简单的方法来指定
我想对Container小部件执行一个非常简单的2D旋转(包含一些其他小部件.)此小部件将围绕中心的单个固定点旋转,没有变形.

我尝试使用带有Matrix4.rotationZ的transform属性,这在某种程度上有效 – 但是锚点位于左上角,而不是在中心.是否有一种简单的方法来指定锚点?

此外,是否有更简单的方法来2D旋转这个不需要Matrix4的小部件?

desired and actual transformations

var container = new Container (
  child: new Stack (
    children: [
      new Image.asset ( // background photo
        "assets/texture.jpg",fit: ImageFit.cover,),new Center (
        child: new Container (
          child: new Text (
            "Lorem ipsum",style: new TextStyle(
              color: Colors.white,fontSize: 42.0,fontWeight: FontWeight.w900
            )
          ),decoration: new BoxDecoration (
            backgroundColor: Colors.black,padding: new EdgeInsets.fromLTRB(16.0,16.0,16.0),transform: new Matrix4.rotationZ(0.174533),// rotate -10 deg
        ),],width: 400.0,height: 200.0,);

解决方法

在旋转之前和之后应用平移(往返于支点).

你可以自己创建一个小工具来实现这一点,从而同时解决你的其他问题(隐藏Matrix4).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读