[英]How to animate object on curve path in Kineticjs
我想将路径创建为某些曲线,可能是四边形曲线。 可以类似于http://www.html5canvastutorials.com/labs/html5-canvas-modify-curves-with-anchor-points-using-kineticjs/
然后,我可以创建图像对象。 但是,我想沿创建的路径为其设置动画(将其从曲线的起点移动到终点)。 我可以使用Javascript + Canvas + KineticJS(v 4.7.1)。 有什么办法,怎么办? 我找不到解决此问题的任何示例。
演示: http : //jsfiddle.net/m1erickson/nnU89/
您可以使用以下公式计算沿二次曲线的点:
// Calc an XY along a quadratic curve at interval T
// T==0.00 at start of curve, T==1.00 at end of curve
function getQuadraticBezierXYatT(startPt,controlPt,endPt,T) {
var x = Math.pow(1-T,2) * startPt.x + 2 * (1-T) * T * controlPt.x + Math.pow(T,2) * endPt.x;
var y = Math.pow(1-T,2) * startPt.y + 2 * (1-T) * T * controlPt.y + Math.pow(T,2) * endPt.y;
return( {x:x,y:y} );
}
您传递:
然后,您可以创建沿曲线设置动画的Kinetic.Animation:
var animation = new Kinetic.Animation(function(frame) {
// calc an XY along the curve at interval T
var pos=getQuadraticBezierXYatT(qStart,qControl,qEnd,T/100);
// set some Kinetic object to that position
yourObject.setPosition(pos);
// change T for the next animation frame
T+=TDirection;
if(T<0 || T>100){ TDirection*=-1; T+=TDirection}
}, layer);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.