Commit b05d42c3 authored by Collin Jackson's avatar Collin Jackson

Merge pull request #1220 from collinjackson/scaling_focus

Ensure that the item under the focal point stays in the same place despite zooming
parents c06995a3 847cea15
......@@ -35,13 +35,16 @@ class ScaleAppState extends State<ScaleApp> {
void _handleScaleUpdate(double scale, Point focalPoint) {
setState(() {
_zoom = _previousZoom * scale;
_offset = _previousOffset + (focalPoint - _startingFocalPoint) / _zoom;
_zoom = (_previousZoom * scale);
// Ensure that item under the focal point stays in the same place despite zooming
Offset normalizedOffset = (_startingFocalPoint.toOffset() - _previousOffset) / _previousZoom;
_offset = focalPoint.toOffset() - normalizedOffset * _zoom;
});
}
void paint(PaintingCanvas canvas, Size size) {
Point center = size.center(Point.origin) + _offset * _zoom;
Point center = (size.center(Point.origin).toOffset() * _zoom + _offset).toPoint();
double radius = size.width / 2.0 * _zoom;
Gradient gradient = new RadialGradient(
center: center, radius: radius,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment