title: Flutter: How to move, rotate and zoom the container?
body: <p>I want to make a container which can be dragged around, zoom and rotate. I am able to achieve a zoom. Below is my code:</p>
  
  <pre><code>//variable declaration
    double _scale = 1.0;
    double _previousScale;
    var yOffset = 400.0;
    var xOffset = 50.0;
    var rotation = 0.0;
    var lastRotation = 0.0;
  </code></pre>
  
  <p>//build method</p>
  
  <pre><code>@override
    Widget build(BuildContext context) {
      return Scaffold(
        body: Center(
          child: Center(
            child: GestureDetector(
              onScaleStart: (scaleDetails) {
                _previousScale = _scale;
                print(' scaleStarts = ${scaleDetails.focalPoint}');
              },
              onScaleUpdate: (scaleUpdates){
                //ScaleUpdateDetails
                rotation += lastRotation - scaleUpdates.rotation;
                lastRotation = scaleUpdates.rotation;
                print("lastRotation = $lastRotation");
                print(' scaleUpdates = ${scaleUpdates.scale} rotation = ${scaleUpdates.rotation}');
                setState(() =&gt; _scale = _previousScale * scaleUpdates.scale);
              },
              onScaleEnd: (scaleEndDetails) {
                _previousScale = null;
                print(' scaleEnds = ${scaleEndDetails.velocity}');
              },
              child:
              Transform(
                transform: Matrix4.diagonal3( Vector3(_scale, _scale, _scale))..rotateZ(rotation * math.pi/180.0),
                alignment: FractionalOffset.center,
                child: Container(
                  height: 200.0,
                  width: 200.0,
                  color: Colors.red,
                ),
              )
              ,
            ),
          ),
        ),
      );
    }
  </code></pre>
  
  <p>Currently, there is no rotation and I can't move the container around.</p>