Comments (7)
even better
var bs = new Bitmap('assets/redpanda.jpg').addTo(stage);
stage.frames({
0: function() {
bs.attr({
origin: new Point(0,0),
rotation:0.1
});
},
'1s': function() {
bs.attr({
origin: new Point(128, 128),
rotation:0.2
});
}
});
from bonsai.
I would say example 2 works as expected. btw: attr
should make sure that origin
is always set first, but this should not be the issue here.
from bonsai.
In the end, they are all matrix transformations. CSS has the origin independent from the main matrix, we don’t have that and need to calculate by hand. We could do it in the renderer and get all the magic.
from bonsai.
@davidaurelio, does that mean that setting an origin and then setting another origin would make the second origin relative to the first?
from bonsai.
That fact that origin
is just an alias for translate
isn't really user-friendly. API-wise I think it would be even clearer when we just remove origin
in the current state. Would it be feasible to let the renderer do the magic? I think it would be only possible if we don't rely on origin
in the runner for further computations.
from bonsai.
@padolsey No, setting the origin does not depend on the precedent origin value
@basecode I agree with you on the unfriendliness of the current state, but removing it is unfriendly as well. We’ve added it so that users wouldn’t need to create their shapes/paths around (0, 0)
. Does SVG support transform-origin
? If yes, we could leverage that feature for fun and profit.
from bonsai.
No, SVG does not have it, but we could do the calculation in the renderer:
For every transformation matrix [a, b, c, d, tx, ty]
with transformation origin [cx, cy]
:
[a, b, c, d, tx, ty], [cx, cy] -> [a, b, c, d, cx - a*cx, cy- d*cy]
from bonsai.
Related Issues (20)
- clone() without attributes not working
- How I can use CSS styling for SVG files I load with BonsaiJS? HOT 1
- textAlign property not working HOT 4
- Save SVG to Image on tick HOT 7
- npm does not install HOT 1
- BoundingBox calculation fails in certain cases HOT 3
- Chrome trips over SVG attribute spreadMethod with an uppercase value "PAD"
- Rookie Question: How to use variable in the attr? HOT 2
- GitHub pages site doesn't work HOT 2
- Documentation seems to be down HOT 2
- Layering Tests No. 2 and 3 fail HOT 1
- Morphing Demo fails
- Is there a way to make it responsive? HOT 1
- Revive this project! HOT 6
- Node.js? HOT 3
- Renders wrong after `clone()`, with a `rotation` attr
- The (phantom) tests are hard to run HOT 1
- Website demos are not working HOT 9
- code is not align
- all demos fail HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bonsai.