| 1234567 |
- /**
- * pasition v1.0.2 By dntzhang
- * Github: https://github.com/AlloyTeam/pasition
- * MIT Licensed.
- */
- !function(t,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):t.pasition=r()}(this,function(){"use strict";function t(t){var n=[];return t.replace(w,function(t,a,e){var o=a.toLowerCase();for(e=r(e),"m"==o&&e.length>2&&(n.push([a].concat(e.splice(0,2))),o="l",a="m"==a?"l":"L");;){if(e.length==b[o])return e.unshift(a),n.push(e);if(e.length<b[o])throw new Error("malformed path data");n.push([a].concat(e.splice(0,b[o])))}}),n}function r(t){var r=t.match(m);return r?r.map(Number):[]}function n(t){var r=t[0][0],n=t[0][1],a=r,e=n;return t.forEach(function(t){var o=t[0],s=t[2],u=t[4],i=t[6],c=t[1],h=t[3],p=t[5],f=t[7];r=Math.min(r,o,s,u,i),n=Math.min(n,c,h,p,f),a=Math.max(a,o,s,u,i),e=Math.max(e,c,h,p,f)}),[r,n,a,e]}function a(t,r){return Math.sqrt(Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2))+Math.sqrt(Math.pow(t[2]-r[2],2)+Math.pow(t[3]-r[3],2))}function e(t,r){var n=t[0],a=t[2],e=t[4],o=t[6],s=t[1],u=t[3],i=t[5],c=t[7],h=r[0],p=r[2],f=r[4],l=r[6],v=r[1],M=r[3],x=r[5],y=r[7];return Math.sqrt(Math.pow(h-n,2)+Math.pow(v-s,2))+Math.sqrt(Math.pow(p-a,2)+Math.pow(M-u,2))+Math.sqrt(Math.pow(f-e,2)+Math.pow(x-i,2))+Math.sqrt(Math.pow(l-o,2)+Math.pow(y-c,2))}function o(t,r){var n=u(t.length),a=[];n.forEach(function(n){var o=0,s=0;n.forEach(function(n){o+=e(t[n],r[s++])}),a.push({index:n,distance:o})}),a.sort(function(t,r){return t.distance-r.distance});var o=[];return a[0].index.forEach(function(r){o.push(t[r])}),o}function s(t,r){var e=i(t.length),o=[];e.forEach(function(e){var s=0;e.forEach(function(e){s+=a(n(t[e]),n(r[e]))}),o.push({index:e,distance:s})}),o.sort(function(t,r){return t.distance-r.distance});var s=[];return o[0].index.forEach(function(r){s.push(t[r])}),s}function u(t){for(var r=[],n=0;n<t;n++){for(var a=[],e=0;e<t;e++){var o=e+n;o>t-1&&(o-=t),a[o]=e}r.push(a)}return r}function i(t){for(var r=[],n=0;n<t;n++)r.push(n);return c(r)}function c(t){function r(t){var e,o;for(e=0;e<t.length;e++)o=t.splice(e,1)[0],a.push(o),0==t.length&&n.push(a.slice()),r(t),t.splice(e,0,o),a.pop();return n}var n=[],a=[];return r(t)}function h(t,r,n,a,e,o,s,u,i){return{left:p(t,r,n,a,e,o,s,u,i),right:p(s,u,e,o,n,a,t,r,1-i,!0)}}function p(t,r,n,a,e,o,s,u,i,c){var h=(n-t)*i+t,p=(a-r)*i+r,f=(e-n)*i+n,l=(o-a)*i+a,v=(s-e)*i+e,M=(u-o)*i+o,x=(f-h)*i+h,y=(l-p)*i+p,g=(v-f)*i+f,d=(M-l)*i+l,b=(g-x)*i+x,w=(d-y)*i+y;return c?[b,w,x,y,h,p,t,r]:[t,r,h,p,x,y,b,w]}function f(t,r){for(var n=0;n<r;n++)!function(r){var n=t[t.length-1],a=[];n.forEach(function(t){a.push(t.slice(0))}),t.push(a)}()}var l=function(){function t(t,r){var n=[],a=!0,e=!1,o=void 0;try{for(var s,u=t[Symbol.iterator]();!(a=(s=u.next()).done)&&(n.push(s.value),!r||n.length!==r);a=!0);}catch(t){e=!0,o=t}finally{try{!a&&u.return&&u.return()}finally{if(e)throw o}}return n}return function(r,n){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return t(r,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),v=2*Math.PI,M=function(t,r,n,a,e,o,s){var u=t.x,i=t.y;return u*=r,i*=n,{x:a*u-e*i+o,y:e*u+a*i+s}},x=function(t,r){var n=4/3*Math.tan(r/4),a=Math.cos(t),e=Math.sin(t),o=Math.cos(t+r),s=Math.sin(t+r);return[{x:a-e*n,y:e+a*n},{x:o+s*n,y:s-o*n},{x:o,y:s}]},y=function(t,r,n,a){var e=t*a-r*n<0?-1:1,o=Math.sqrt(t*t+r*r),s=Math.sqrt(t*t+r*r),u=t*n+r*a,i=u/(o*s);return i>1&&(i=1),i<-1&&(i=-1),e*Math.acos(i)},g=function(t,r,n,a,e,o,s,u,i,c,h,p){var f=Math.pow(e,2),l=Math.pow(o,2),M=Math.pow(h,2),x=Math.pow(p,2),g=f*l-f*x-l*M;g<0&&(g=0),g/=f*x+l*M,g=Math.sqrt(g)*(s===u?-1:1);var d=g*e/o*p,b=g*-o/e*h,w=c*d-i*b+(t+n)/2,m=i*d+c*b+(r+a)/2,C=(h-d)/e,_=(p-b)/o,q=(-h-d)/e,E=(-p-b)/o,k=y(1,0,C,_),S=y(C,_,q,E);return 0===u&&S>0&&(S-=v),1===u&&S<0&&(S+=v),[w,m,k,S]},d=function(t){var r=t.px,n=t.py,a=t.cx,e=t.cy,o=t.rx,s=t.ry,u=t.xAxisRotation,i=void 0===u?0:u,c=t.largeArcFlag,h=void 0===c?0:c,p=t.sweepFlag,f=void 0===p?0:p,y=[];if(0===o||0===s)return[];var d=Math.sin(i*v/360),b=Math.cos(i*v/360),w=b*(r-a)/2+d*(n-e)/2,m=-d*(r-a)/2+b*(n-e)/2;if(0===w&&0===m)return[];o=Math.abs(o),s=Math.abs(s);var C=Math.pow(w,2)/Math.pow(o,2)+Math.pow(m,2)/Math.pow(s,2);C>1&&(o*=Math.sqrt(C),s*=Math.sqrt(C));var _=g(r,n,a,e,o,s,h,f,d,b,w,m),q=l(_,4),E=q[0],k=q[1],S=q[2],U=q[3],N=Math.max(Math.ceil(Math.abs(U)/(v/4)),1);U/=N;for(var O=0;O<N;O++)y.push(x(S,U)),S+=U;return y.map(function(t){var r=M(t[0],o,s,b,d,E,k),n=r.x,a=r.y,e=M(t[1],o,s,b,d,E,k),u=e.x,i=e.y,c=M(t[2],o,s,b,d,E,k);return{x1:n,y1:a,x2:u,y2:i,x:c.x,y:c.y}})},b={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},w=/([astvzqmhlc])([^astvzqmhlc]*)/gi,m=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi,C={};return C.parser=t,C.lerpCurve=function(t,r,n){return C.lerpPoints(t[0],t[1],r[0],r[1],n).concat(C.lerpPoints(t[2],t[3],r[2],r[3],n)).concat(C.lerpPoints(t[4],t[5],r[4],r[5],n)).concat(C.lerpPoints(t[6],t[7],r[6],r[7],n))},C.lerpPoints=function(t,r,n,a,e){return[t+(n-t)*e,r+(a-r)*e]},C.q2b=function(t,r,n,a,e,o){return[t,r,(t+2*n)/3,(r+2*a)/3,(e+2*n)/3,(o+2*a)/3,e,o]},C.path2shapes=function(t){for(var r=C.parser(t),n=0,a=0,e=0,o=r.length,s=[],u=null,i=void 0,c=void 0,h=void 0,p=void 0,f=void 0,l=void 0,v=void 0;e<o;e++){var M=r[e],x=M[0],y=r[e-1];switch(x){case"m":f=s.length,s[f]=[],u=s[f],n+=M[1],a+=M[2];break;case"M":f=s.length,s[f]=[],u=s[f],n=M[1],a=M[2];break;case"l":u.push([n,a,n,a,n,a,n+M[1],a+M[2]]),n+=M[1],a+=M[2];break;case"L":u.push([n,a,M[1],M[2],M[1],M[2],M[1],M[2]]),n=M[1],a=M[2];break;case"h":u.push([n,a,n,a,n,a,n+M[1],a]),n+=M[1];break;case"H":u.push([n,a,M[1],a,M[1],a,M[1],a]),n=M[1];break;case"v":u.push([n,a,n,a,n,a,n,a+M[1]]),a+=M[1];break;case"V":u.push([n,a,n,M[1],n,M[1],n,M[1]]),a=M[1];break;case"C":u.push([n,a,M[1],M[2],M[3],M[4],M[5],M[6]]),n=M[5],a=M[6];break;case"S":"C"===y[0]||"c"===y[0]?u.push([n,a,n+y[5]-y[3],a+y[6]-y[4],M[1],M[2],M[3],M[4]]):"S"!==y[0]&&"s"!==y[0]||u.push([n,a,n+y[3]-y[1],a+y[4]-y[2],M[1],M[2],M[3],M[4]]),n=M[3],a=M[4];break;case"c":u.push([n,a,n+M[1],a+M[2],n+M[3],a+M[4],n+M[5],a+M[6]]),n+=M[5],a+=M[6];break;case"s":"C"===y[0]||"c"===y[0]?u.push([n,a,n+y[5]-y[3],a+y[6]-y[4],n+M[1],a+M[2],n+M[3],a+M[4]]):"S"!==y[0]&&"s"!==y[0]||u.push([n,a,n+y[3]-y[1],a+y[4]-y[2],n+M[1],a+M[2],n+M[3],a+M[4]]),n+=M[3],a+=M[4];break;case"a":l=d({rx:M[1],ry:M[2],px:n,py:a,xAxisRotation:M[3],largeArcFlag:M[4],sweepFlag:M[5],cx:n+M[6],cy:a+M[7]}),v=l[l.length-1],l.forEach(function(t,r){0===r?u.push([n,a,t.x1,t.y1,t.x2,t.y2,t.x,t.y]):u.push([l[r-1].x,l[r-1].y,t.x1,t.y1,t.x2,t.y2,t.x,t.y])}),n=v.x,a=v.y;break;case"A":l=d({rx:M[1],ry:M[2],px:n,py:a,xAxisRotation:M[3],largeArcFlag:M[4],sweepFlag:M[5],cx:M[6],cy:M[7]}),v=l[l.length-1],l.forEach(function(t,r){0===r?u.push([n,a,t.x1,t.y1,t.x2,t.y2,t.x,t.y]):u.push([l[r-1].x,l[r-1].y,t.x1,t.y1,t.x2,t.y2,t.x,t.y])}),n=v.x,a=v.y;break;case"Q":u.push(C.q2b(n,a,M[1],M[2],M[3],M[4])),n=M[3],a=M[4];break;case"q":u.push(C.q2b(n,a,n+M[1],a+M[2],M[3]+n,M[4]+a)),n+=M[3],a+=M[4];break;case"T":"Q"===y[0]||"q"===y[0]?(h=n+y[3]-y[1],p=a+y[4]-y[2],u.push(C.q2b(n,a,h,p,M[1],M[2]))):"T"!==y[0]&&"t"!==y[0]||(u.push(C.q2b(n,a,n+n-h,a+a-p,M[1],M[2])),h=n+n-h,p=a+a-p),n=M[1],a=M[2];break;case"t":"Q"===y[0]||"q"===y[0]?(h=n+y[3]-y[1],p=a+y[4]-y[2],u.push(C.q2b(n,a,h,p,n+M[1],a+M[2]))):"T"!==y[0]&&"t"!==y[0]||(u.push(C.q2b(n,a,n+n-h,a+a-p,n+M[1],a+M[2])),h=n+n-h,p=a+a-p),n+=M[1],a+=M[2];break;case"Z":case"z":i=u[0][0],c=u[0][1],u.push([n,a,i,c,i,c,i,c])}}return s},C._upCurves=function(t,r){for(var n=0,a=0,e=t.length;n<r;n++)t.push(t[a].slice(0)),++a>e-1&&(a-=e)},C._splitCurves=function(t,r){for(var n=0,a=0;n<r;n++){var e=t[a],o=h(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],.5);t.splice(a,1),t.splice(a,0,o.left,o.right),a+=2,a>=t.length-1&&(a=0)}},C.lerp=function(t,r,n){return C._lerp(C.path2shapes(t),C.path2shapes(r),n)},C.MIM_CURVES_COUNT=100,C._preprocessing=function(t,r){var n=t.length,a=r.length,e=JSON.parse(JSON.stringify(t)),u=JSON.parse(JSON.stringify(r));return n>a?f(u,n-a):n<a&&f(e,a-n),e=s(e,u),e.forEach(function(t,r){var n=t.length,a=u[r].length;n>a?n<C.MIM_CURVES_COUNT?(C._splitCurves(t,C.MIM_CURVES_COUNT-n),C._splitCurves(u[r],C.MIM_CURVES_COUNT-a)):C._splitCurves(u[r],n-a):n<a&&(a<C.MIM_CURVES_COUNT?(C._splitCurves(t,C.MIM_CURVES_COUNT-n),C._splitCurves(u[r],C.MIM_CURVES_COUNT-a)):C._splitCurves(t,a-n))}),e.forEach(function(t,r){e[r]=o(t,u[r])}),[e,u]},C._lerp=function(t,r,n){var a=[];return t.forEach(function(t,e){var o=[];t.forEach(function(t,a){o.push(C.lerpCurve(t,r[e][a],n))}),a.push(o)}),a},C.animate=function(t){var r=C.path2shapes(t.from),n=C.path2shapes(t.to),a=C._preprocessing(r,n),e=new Date,o=t.end||function(){},s=t.progress||function(){},u=t.begin||function(){},i=t.easing||function(t){return t},c=null,h=null,p=t.time;u(r);!function t(){var r=new Date-e;if(r>=p)return h=n,s(h,1),o(h),void cancelAnimationFrame(c);var u=i(r/p);h=C._lerp(a[0],a[1],u),s(h,u),c=requestAnimationFrame(t)}()},C});
|