I wanted to learn about animation on the canvas so I’m making a smooth spiral animation of the first 199 words or David Bowie’s ‘Space Oddity’ using the excellent Konva canvas library and its animation feature.
When trying to squeeze every last morsel of optimisation out of a canvas app, we need to be concerned about NOT drawing anything we don’t need to. This means anything that the user cannot possibly see should not be drawn. I’ll be showing how to know a node is offscreen using the Konva HTML5 canvasContinue reading “Konva – HTML5 Canvas viewport optimisation”
This is something I made for fun when I was learning about Konva tweens and animation, and posted as a self-answered question on StackOverflow. The coin spin effect is done by scaling the X axis of the circle from 1 to 0 to 1 in a loop. The human brain is defeated by the simpleContinue reading “Konva – HTML5 canvas coin spin effect”
This is from a StackOverflow answer I made in response to a request for a way to show a route on a map with bends. In essence this is manipulation of the points array for a Konva Line object. The user selects a point via a mouse click and that point goes into the pointsContinue reading “Konva – HTML5 canvas manual route drawing solution”
A quick post on how to get the browser to scroll the stage. The simple solution is to draw the stage full size and place it inside a smaller div. The key here is that the div that contains the canvas has a specified width & height, and also overflow-scroll. And here is the result.
The canvas does not yet provide the same level of character manipulation and measuring functions as we might find in the Windows GDI or similar. But it does give us canvas.measureText() to measure character size. Combine that with path.getPointAtLength() and we can fit text to a path. Measuring Text To have any chance to fitContinue reading “Konva – HTML5 Canvas text on a path”
Or, how to get the Y-axis to go bottom-up when the normal situation is for it to increase from the top-down. While we are at it, we’ll develop the bones of a plotting class. I’ll be developing my code with the use of the Konva JS canvas library which is a wrapper for the HTML5Continue reading “Konva – HTML5 Canvas bottoms-up”
So you have a shape with some transforms applied – you need to apply the same transforms to another shape. How do you do that ? It turns out that Konva gives us a simple means to accomplish the challenge. We can get the first shapes transform with the shape.getTransform() method, then with a littleContinue reading “Konva – shape transform sharing is simple”
The Konva HTML5 canvas lib has a very useful feature that can spit out the transform applied to a shape, and which we can borrow to rotate points without math. The example below illustrates the use of rect’s transform to position the corner circles. Codepen here. What is a transform ? I couldn’t find aContinue reading “Konva – using a shape’s transform to rotate points”