marcglasberg / matrix4_transform Goto Github PK
View Code? Open in Web Editor NEWFlutter package: Helper math class for easily creating Matrix4 transformations, that you can use in Container's transform parameter and elsewhere.
License: Other
Flutter package: Helper math class for easily creating Matrix4 transformations, that you can use in Container's transform parameter and elsewhere.
License: Other
would it be possible to change Matrix4TransformTween
in such a way it does not use broken Matrix4Tween.lerp
method? now when matrix uses non trivial transformations the results are weird: "Since Matrix4Tween will not animate linearly as you'd expect, it's possible that the intermediary transformations will be "strange", although the start and end should be correct."
I want to use this great package on my web application too. Yet there is an error like this
Unable to find modules for some sources, this is usually the result of either a
bad import, a missing dependency in a package (or possibly a dev_dependency
needs to move to a real dependency), or a build failure (if importing a
generated file).
Please check the following imports:
`import 'package:matrix4_transform/matrix4_transform.dart';`
matrix4_transform: 1.1.3
I have it on pubspec.yaml like this. What could be the reason since on the pub page, WEB support is shown? https://pub.dev/packages/matrix4_transform
SOLVED: It's my bad. I've just forgotten to run flutter clean
then rebuilding. For Flutter Web, I've experienced that before after adding new packages. Sometimes the cached build causes that.
It works as expected. Thanks again.
Hi
if I scale horizontally but keep the height constant, the child gets distorted. How to make the child resize automatically rather than scale with the parent?
Hi!
I want to transform a widget on onScaleUpdate
event then I used Matrix4Transform
like this:
GestureDetector(
onScaleStart: (d) {
dx = d.focalPoint.dx;
dy = d.focalPoint.dy;
},
onScaleUpdate: (d) {
setState(() {
matrix = Matrix4Transform()
.translate(x: d.focalPoint.dx - dx, y: d.focalPoint.dy - dy)
.scale(d.scale)
.rotate(d.rotation)
.matrix4;
});
},
child: Center(
child: Transform(
transform: matrix,
alignment: FractionalOffset.center,
child: Container(width: 100, height: 100, color: Colors.red),
),
),
)
It works fine, but the problem is, I want to keep last transform on Matrix4
object and use it on the next transform, then I've tried using from
contractor like this:
onScaleUpdate: (d) {
setState(() {
matrix = Matrix4Transform.fom(matrix)
.translate(x: d.focalPoint.dx - dx, y: d.focalPoint.dy - dy)
.scale(d.scale)
.rotate(d.rotation)
.matrix4;
});
},
But it does not work how I expected, as you can see it's too sharp:
am I using it wrong? any suggestion?
Hi, dear Marc!
This package is a lifesaver, thank you! Normally, I needed to use an animation, a controller and all that boilerplate.
I was searching for a way to use the transform:
property of the AnimatedContainer
since it will save me from all that hustle. Found Matrix4Transform at the superb timing!
There isn't any issue actually but you can advertise this package by showing the animation power. And since it's chainable, I can create very complex animations.
AnimatedContainer(
duration: animationDuration,
curve: animationCurve,
transform: Matrix4Transform()
.translate(
x: 0,
y: !widget.isEditModeActive ? 0 : 40,
).matrix4,
child: widget.child,
)
Any chance you'll migrate to extensions?
It is currently hard and not intuitive to skew a widget with the out of box transformations. For instance I am having very hard time trying to transform a rectangle [] in to a lets say "railroad in perspective" /\ since it is easier with this package to use matrix4, I would be glad if skew is supported intuitively too:) thanks
Hi there,
As every year in october, Hacktoberfest has started! :-)
More details here : https://hacktoberfest.digitalocean.com/resources/maintainers
Would you add the hacktoberfest
label to your repo so contributors know they can participate and fix issues/craft PRs?
Thanks a lot.
I can't get it working in canvas:
canvas.drawRect(destRect, Paint()..color = Colors.white10);
canvas.save();
final matrix = Matrix4Transform()
.scaleBy(
x: letterAnimations.scale.value,
y: letterAnimations.scale.value,
origin: Offset(destRect.width / 2, destRect.height / 2),
)
.matrix4;
canvas.transform(matrix.storage);
canvas.drawRect(destRect, Paint()..color = Colors.white10);
canvas.restore();
I expect those rects to overlap
The library 'package:matrix4_transform/matrix4_transform.dart' is legacy, and should not be imported into a null safe library.
Try migrating the imported library.
Error: This project cannot run with sound null safety, because one or more project dependencies do not
support null safety:
dependencies:
matrix4_transform: ^1.1.6
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.