litecanvas 0.102.3 → 0.103.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +17 -19
- package/dist/dist.js +12 -11
- package/dist/dist.min.js +1 -1
- package/package.json +1 -1
- package/src/index.js +18 -19
- package/src/version.js +1 -1
- package/types/global.d.ts +7 -6
- package/types/types.d.ts +7 -6
package/dist/dist.dev.js
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
// src/version.js
|
|
22
|
-
var version = "0.
|
|
22
|
+
var version = "0.103.0";
|
|
23
23
|
|
|
24
24
|
// src/index.js
|
|
25
25
|
function litecanvas(settings = {}) {
|
|
@@ -143,6 +143,22 @@
|
|
|
143
143
|
if (value > max) return max;
|
|
144
144
|
return value;
|
|
145
145
|
},
|
|
146
|
+
/**
|
|
147
|
+
* Calculates the distance between a point (x1, y1) to another (x2, y2).
|
|
148
|
+
*
|
|
149
|
+
* @param {number} x1
|
|
150
|
+
* @param {number} y1
|
|
151
|
+
* @param {number} x2
|
|
152
|
+
* @param {number} y2
|
|
153
|
+
* @returns {number}
|
|
154
|
+
*/
|
|
155
|
+
dist: (x1, y1, x2, y2) => {
|
|
156
|
+
DEV: assert(isNumber(x1), "[litecanvas] dist() 1st param must be a number");
|
|
157
|
+
DEV: assert(isNumber(y1), "[litecanvas] dist() 2nd param must be a number");
|
|
158
|
+
DEV: assert(isNumber(x2), "[litecanvas] dist() 3rd param must be a number");
|
|
159
|
+
DEV: assert(isNumber(y2), "[litecanvas] dist() 4th param must be a number");
|
|
160
|
+
return math.hypot(x2 - x1, y2 - y1);
|
|
161
|
+
},
|
|
146
162
|
/**
|
|
147
163
|
* Wraps a number between `min` (inclusive) and `max` (exclusive).
|
|
148
164
|
*
|
|
@@ -205,24 +221,6 @@
|
|
|
205
221
|
);
|
|
206
222
|
return instance.map(value, start, stop, 0, 1);
|
|
207
223
|
},
|
|
208
|
-
/**
|
|
209
|
-
* Interpolate between 2 values using a periodic function.
|
|
210
|
-
*
|
|
211
|
-
* @param {number} from - the lower bound
|
|
212
|
-
* @param {number} to - the higher bound
|
|
213
|
-
* @param {number} t - value passed to the periodic function
|
|
214
|
-
* @param {(n: number) => number} [fn] - the periodic function (which default to `Math.sin`)
|
|
215
|
-
*/
|
|
216
|
-
wave: (from, to, t, fn = Math.sin) => {
|
|
217
|
-
DEV: assert(isNumber(from), "[litecanvas] wave() 1st param must be a number");
|
|
218
|
-
DEV: assert(isNumber(to), "[litecanvas] wave() 2nd param must be a number");
|
|
219
|
-
DEV: assert(isNumber(t), "[litecanvas] wave() 3rd param must be a number");
|
|
220
|
-
DEV: assert(
|
|
221
|
-
"function" === typeof fn,
|
|
222
|
-
"[litecanvas] wave() 4rd param must be a function (n: number) => number"
|
|
223
|
-
);
|
|
224
|
-
return from + (fn(t) + 1) / 2 * (to - from);
|
|
225
|
-
},
|
|
226
224
|
/** RNG API */
|
|
227
225
|
/**
|
|
228
226
|
* Generates a pseudorandom float between min (inclusive) and max (exclusive)
|
package/dist/dist.js
CHANGED
|
@@ -118,6 +118,18 @@
|
|
|
118
118
|
if (value > max) return max;
|
|
119
119
|
return value;
|
|
120
120
|
},
|
|
121
|
+
/**
|
|
122
|
+
* Calculates the distance between a point (x1, y1) to another (x2, y2).
|
|
123
|
+
*
|
|
124
|
+
* @param {number} x1
|
|
125
|
+
* @param {number} y1
|
|
126
|
+
* @param {number} x2
|
|
127
|
+
* @param {number} y2
|
|
128
|
+
* @returns {number}
|
|
129
|
+
*/
|
|
130
|
+
dist: (x1, y1, x2, y2) => {
|
|
131
|
+
return math.hypot(x2 - x1, y2 - y1);
|
|
132
|
+
},
|
|
121
133
|
/**
|
|
122
134
|
* Wraps a number between `min` (inclusive) and `max` (exclusive).
|
|
123
135
|
*
|
|
@@ -157,17 +169,6 @@
|
|
|
157
169
|
norm: (value, start, stop) => {
|
|
158
170
|
return instance.map(value, start, stop, 0, 1);
|
|
159
171
|
},
|
|
160
|
-
/**
|
|
161
|
-
* Interpolate between 2 values using a periodic function.
|
|
162
|
-
*
|
|
163
|
-
* @param {number} from - the lower bound
|
|
164
|
-
* @param {number} to - the higher bound
|
|
165
|
-
* @param {number} t - value passed to the periodic function
|
|
166
|
-
* @param {(n: number) => number} [fn] - the periodic function (which default to `Math.sin`)
|
|
167
|
-
*/
|
|
168
|
-
wave: (from, to, t, fn = Math.sin) => {
|
|
169
|
-
return from + (fn(t) + 1) / 2 * (to - from);
|
|
170
|
-
},
|
|
171
172
|
/** RNG API */
|
|
172
173
|
/**
|
|
173
174
|
* Generates a pseudorandom float between min (inclusive) and max (exclusive)
|
package/dist/dist.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e=["#211e20","#555568","#a0a08b","#e9efec"];window.litecanvas=function(t={}){let a,l=window,n=Math,i=2*n.PI,o=requestAnimationFrame,r=[],s=(e,t,a)=>{e.addEventListener(t,a,!1),r.push(()=>e.removeEventListener(t,a,!1))},f=(a=new AudioContext,l.zzfxV=1,(e=1,t=.05,n=220,i=0,o=0,r=.1,s=0,f=1,d=0,c=0,
|
|
1
|
+
(()=>{var e=["#211e20","#555568","#a0a08b","#e9efec"];window.litecanvas=function(t={}){let a,l=window,n=Math,i=2*n.PI,o=requestAnimationFrame,r=[],s=(e,t,a)=>{e.addEventListener(t,a,!1),r.push(()=>e.removeEventListener(t,a,!1))},f=(a=new AudioContext,l.zzfxV=1,(e=1,t=.05,n=220,i=0,o=0,r=.1,s=0,f=1,d=0,c=0,p=0,u=0,h=0,g=0,m=0,v=0,w=0,x=1,y=0,b=0,k=0)=>{let z=Math,D=2*z.PI,E=d*=500*D/44100/44100,P=n*=(1-t+2*t*z.random(t=[]))*D/44100,T=0,C=0,I=0,L=1,S=0,A=0,M=0,N=k<0?-1:1,q=D*N*k*2/44100,B=z.cos(q),H=z.sin,O=H(q)/4,V=1+O,W=-2*B/V,R=(1-O)/V,F=(1+N*B)/2/V,G=-(N+B)/V,X=0,Y=0,$=0,j=0;for(i=44100*i+9,y*=44100,o*=44100,r*=44100,w*=44100,c*=500*D/85766121e6,m*=D/44100,p*=D/44100,u*=44100,h=44100*h|0,e*=.3*l.zzfxV,N=i+y+o+r+w|0;I<N;t[I++]=M*e)++A%(100*v|0)||(M=s?1<s?2<s?3<s?H(T*T):z.max(z.min(z.tan(T),1),-1):1-(2*T/D%2+2)%2:1-4*z.abs(z.round(T/D)-T/D):H(T),M=(h?1-b+b*H(D*I/h):1)*(M<0?-1:1)*z.abs(M)**f*(I<i?I/i:I<i+y?1-(I-i)/y*(1-x):I<i+y+o?x:I<N-w?(N-I-w)/r*x:0),M=w?M/2+(w>I?0:(I<N-w?1:(N-I)/w)*t[I-w|0]/2/e):M,k&&(M=j=F*X+G*(X=Y)+F*(Y=M)-R*$-W*($=j))),T+=(q=(n+=d+=c)*z.cos(m*C++))+q*g*H(I**5),L&&++L>u&&(n+=p,P+=p,L=0),!h||++S%h||(n=P,d=E,L=L||1);(e=a.createBuffer(1,N,44100)).getChannelData(0).set(t),(n=a.createBufferSource()).buffer=e,n.connect(a.destination),n.start()});t=Object.assign({width:null,height:null,autoscale:!0,canvas:null,global:!0,loop:null,tapEvents:!0,keyboardEvents:!0},t);let d=!1,c=!0,p,u=1,h,g=.5,m=1,v,w=1e3/60,x,y,b=3,k="sans-serif",z=20,D=1.2,E=Date.now(),P=e,T=[],C=[.5,0,1750,,,.3,1,,,,600,.1],I={},L={W:0,H:0,T:0,MX:-1,MY:-1,TWO_PI:i,HALF_PI:i/4,lerp:(e,t,a)=>e+a*(t-e),deg2rad:e=>n.PI/180*e,rad2deg:e=>180/n.PI*e,round:(e,t=0)=>{if(!t)return n.round(e);let a=10**t;return n.round(e*a)/a},clamp:(e,t,a)=>e<t?t:e>a?a:e,dist:(e,t,a,l)=>n.hypot(a-e,l-t),wrap:(e,t,a)=>e-(a-t)*n.floor((e-t)/(a-t)),map(e,t,a,l,n,i){let o=(e-t)/(a-t)*(n-l)+l;return i?L.clamp(o,l,n):o},norm:(e,t,a)=>L.map(e,t,a,0,1),rand:(e=0,t=1)=>(E=(1664525*E+0x3c6ef35f)%0x100000000)/0x100000000*(t-e)+e,randi:(e=0,t=1)=>n.floor(L.rand(e,t+1)),rseed(e){E=~~e},cls(e){null==e?h.clearRect(0,0,h.canvas.width,h.canvas.height):L.rectfill(0,0,h.canvas.width,h.canvas.height,e)},rect(e,t,a,l,n,i){h.beginPath(),h[i?"roundRect":"rect"](~~e-g,~~t-g,~~a+2*g,~~l+2*g,i),L.stroke(n)},rectfill(e,t,a,l,n,i){h.beginPath(),h[i?"roundRect":"rect"](~~e,~~t,~~a,~~l,i),L.fill(n)},circ(e,t,a,l){h.beginPath(),h.arc(~~e,~~t,~~a,0,i),L.stroke(l)},circfill(e,t,a,l){h.beginPath(),h.arc(~~e,~~t,~~a,0,i),L.fill(l)},oval(e,t,a,l,n){h.beginPath(),h.ellipse(~~e,~~t,~~a,~~l,0,0,i),L.stroke(n)},ovalfill(e,t,a,l,n){h.beginPath(),h.ellipse(~~e,~~t,~~a,~~l,0,0,i),L.fill(n)},shape(e){h.beginPath();for(let t=0;t<e.length;t+=2)0===t?h.moveTo(~~e[t],~~e[t+1]):h.lineTo(~~e[t],~~e[t+1]);h.lineTo(~~e[0],~~e[1])},line(e,t,a,l,n){h.beginPath();let i=.5*(0!==g&&~~e==~~a),o=.5*(0!==g&&~~t==~~l);h.moveTo(~~e+i,~~t+o),h.lineTo(~~a+i,~~l+o),L.stroke(n)},linewidth(e){h.lineWidth=~~e,g=.5*(0!=~~e%2)},linedash(e,t=0){h.setLineDash(e),h.lineDashOffset=t},text(e,t,a,l=b,n="normal"){h.font=`${n} ${z}px ${k}`,h.fillStyle=q(l);let i=(""+a).split("\n");for(let a=0;a<i.length;a++)h.fillText(i[a],~~e,~~t+z*D*a)},textgap(e){D=e},textfont(e){k=e},textsize(e){z=e},textalign(e,t){e&&(h.textAlign=e),t&&(h.textBaseline=t)},image(e,t,a){h.drawImage(a,~~e,~~t)},spr(e,t,a){let l=a.trim().split("\n");for(let a=0;a<l.length;a++){let n=l[a].trim();for(let l=0;l<n.length;l++){let i=n[l];"."!==i&&" "!==i&&L.rectfill(e+l,t+a,1,1,parseInt(i,36)||0)}}},paint(e,t,a,l={}){let n=l.canvas||new OffscreenCanvas(1,1),i=l.scale||1,o=h;return n.width=e*i,n.height=t*i,(h=n.getContext("2d")).scale(i,i),a(h),h=o,n.transferToImageBitmap()},ctx:e=>(e&&(h=e),h),push(){h.save()},pop(){h.restore()},translate(e,t){h.translate(~~e,~~t)},scale(e,t){h.scale(e,t||e)},rotate(e){h.rotate(e)},alpha(e){h.globalAlpha=L.clamp(e,0,1)},fill(e){h.fillStyle=q(e),h.fill()},stroke(e){h.strokeStyle=q(e),h.stroke()},clip(e){h.beginPath(),e(h),h.clip()},sfx:(e,t=0,a=1)=>!!l.zzfxV&&(!navigator.userActivation||!!navigator.userActivation.hasBeenActive)&&(e=e||C,(0!==t||1!==a)&&((e=e.slice())[0]=a*(e[0]||1),e[10]=~~e[10]+t),f.apply(0,e),e),volume(e){l.zzfxV=e},canvas:()=>p,use(e,t={}){var a=e,l=t;let n=a(L,l);for(let e in n)L.def(e,n[e])},listen:(e,t)=>(I[e=e.toLowerCase()]=I[e]||new Set,I[e].add(t),()=>I[e]?.delete(t)),emit(e,t,a,l,n){d&&(N("before:"+(e=e.toLowerCase()),t,a,l,n),N(e,t,a,l,n),N("after:"+e,t,a,l,n))},pal(t,a=3){P=t||e,T=[],b=a},palc(e,t){null==e?T=[]:T[e]=t},def(e,a){L[e]=a,t.global&&(l[e]=a)},timescale(e){m=e},framerate(e){w=1e3/~~e},stat(e){let a={index:e,value:[t,d,w/1e3,u,I,P,C,m,l.zzfxV,E,z,k,T,D][e]};return L.emit("stat",a),a.value},pause(){c=!0,cancelAnimationFrame(y)},resume(){d&&c&&(c=!1,x=w,v=Date.now(),y=o(A))},paused:()=>c,quit(){for(let e of(L.emit("quit"),L.pause(),d=!1,I={},r))e();if(t.global){for(let e in L)delete l[e];delete l.ENGINE}}};for(let e of"PI,sin,cos,atan2,hypot,tan,abs,ceil,floor,trunc,min,max,pow,sqrt,sign,exp".split(","))L[e]=n[e];function S(){if(t.autoscale&&s(l,"resize",M),t.tapEvents){let e=e=>[(e.pageX-p.offsetLeft)/u,(e.pageY-p.offsetTop)/u],t=new Map,a=(e,a,l)=>{let n={x:a,y:l,xi:a,yi:l,t:Date.now()};return t.set(e,n),n},n=(e,l,n)=>{let i=t.get(e)||a(e);i.x=l,i.y=n},i=e=>e&&Date.now()-e.t<=300,o=!1;s(p,"mousedown",t=>{if(0===t.button){t.preventDefault();let[l,n]=e(t);L.emit("tap",l,n,0),a(0,l,n),o=!0}}),s(p,"mouseup",a=>{if(0===a.button){a.preventDefault();let l=t.get(0),[n,r]=e(a);i(l)&&L.emit("tapped",l.xi,l.yi,0),L.emit("untap",n,r,0),t.delete(0),o=!1}}),s(l,"mousemove",t=>{t.preventDefault();let[a,l]=e(t);L.def("MX",a),L.def("MY",l),o&&(L.emit("tapping",a,l,0),n(0,a,l))}),s(p,"touchstart",t=>{for(let l of(t.preventDefault(),t.changedTouches)){let[t,n]=e(l);L.emit("tap",t,n,l.identifier+1),a(l.identifier+1,t,n)}}),s(p,"touchmove",t=>{for(let a of(t.preventDefault(),t.changedTouches)){let[t,l]=e(a);L.emit("tapping",t,l,a.identifier+1),n(a.identifier+1,t,l)}});let r=e=>{e.preventDefault();let a=[];if(e.targetTouches.length>0)for(let t of e.targetTouches)a.push(t.identifier+1);for(let[e,l]of t)a.includes(e)||(i(l)&&L.emit("tapped",l.xi,l.yi,e),L.emit("untap",l.x,l.y,e),t.delete(e))};s(p,"touchend",r),s(p,"touchcancel",r),s(l,"blur",()=>{for(let[e,a]of(o=!1,t))L.emit("untap",a.x,a.y,e),t.delete(e)})}if(t.keyboardEvents){let e=new Set,t=new Set,a=(e,t="")=>(t=t.toLowerCase())?e.has("space"===t?" ":t):e.size>0,n="";s(l,"keydown",a=>{let l=a.key.toLowerCase();e.has(l)||(e.add(l),t.add(l),n=" "===l?"space":l)}),s(l,"keyup",t=>{e.delete(t.key.toLowerCase())}),s(l,"blur",()=>e.clear()),L.listen("after:update",()=>t.clear()),L.def("iskeydown",t=>a(e,t)),L.def("iskeypressed",e=>a(t,e)),L.def("lastkey",()=>n)}d=!0,L.resume(),L.emit("init",L)}function A(){y=o(A);let e=Date.now(),t=0,a=e-v;for(v=e,x+=a<100?a:w;x>=w;){t++,x-=w;let e=w/1e3*m;L.emit("update",e,t),L.def("T",L.T+e)}t&&(L.emit("draw",h),t>1&&(x=0))}function M(){let e=t.width>0?t.width:innerWidth,a=t.width>0?t.height||t.width:innerHeight;if(L.def("W",e),L.def("H",a),p.width=e,p.height=a,t.autoscale){let l=+t.autoscale;p.style.display||(p.style.display="block",p.style.margin="auto"),u=n.min(innerWidth/e,innerHeight/a),u=l>1&&u>l?l:u,p.style.width=e*u+"px",p.style.height=a*u+"px"}h.imageSmoothingEnabled=!1,L.textalign("start","top"),L.emit("resized",u)}function N(e,t,a,l,n){if(I[e])for(let i of I[e])i(t,a,l,n)}function q(e){return P[~~(T[e]??e)%P.length]}if(t.global){if(l.ENGINE)throw Error("only one global litecanvas is allowed");Object.assign(l,L),l.ENGINE=L}h=(p=(p="string"==typeof t.canvas?document.querySelector(t.canvas):t.canvas)||document.createElement("canvas")).getContext("2d"),s(p,"click",()=>focus()),M(),p.parentNode||document.body.appendChild(p),p.style.imageRendering="pixelated",p.oncontextmenu=()=>!1;let B=t.loop?t.loop:l;for(let e of"init,update,draw,tap,untap,tapping,tapped,resized".split(","))B[e]&&L.listen(e,B[e]);return"loading"===document.readyState?s(l,"DOMContentLoaded",()=>o(S)):y=o(S),L}})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "litecanvas",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.103.0",
|
|
4
4
|
"description": "Lightweight HTML5 canvas 2D game engine suitable for small projects and creative coding. Inspired by PICO-8 and p5.js/Processing.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Luiz Bills <luizbills@pm.me>",
|
package/src/index.js
CHANGED
|
@@ -217,6 +217,24 @@ export default function litecanvas(settings = {}) {
|
|
|
217
217
|
return value
|
|
218
218
|
},
|
|
219
219
|
|
|
220
|
+
/**
|
|
221
|
+
* Calculates the distance between a point (x1, y1) to another (x2, y2).
|
|
222
|
+
*
|
|
223
|
+
* @param {number} x1
|
|
224
|
+
* @param {number} y1
|
|
225
|
+
* @param {number} x2
|
|
226
|
+
* @param {number} y2
|
|
227
|
+
* @returns {number}
|
|
228
|
+
*/
|
|
229
|
+
dist: (x1, y1, x2, y2) => {
|
|
230
|
+
DEV: assert(isNumber(x1), '[litecanvas] dist() 1st param must be a number')
|
|
231
|
+
DEV: assert(isNumber(y1), '[litecanvas] dist() 2nd param must be a number')
|
|
232
|
+
DEV: assert(isNumber(x2), '[litecanvas] dist() 3rd param must be a number')
|
|
233
|
+
DEV: assert(isNumber(y2), '[litecanvas] dist() 4th param must be a number')
|
|
234
|
+
|
|
235
|
+
return math.hypot(x2 - x1, y2 - y1)
|
|
236
|
+
},
|
|
237
|
+
|
|
220
238
|
/**
|
|
221
239
|
* Wraps a number between `min` (inclusive) and `max` (exclusive).
|
|
222
240
|
*
|
|
@@ -286,25 +304,6 @@ export default function litecanvas(settings = {}) {
|
|
|
286
304
|
return instance.map(value, start, stop, 0, 1)
|
|
287
305
|
},
|
|
288
306
|
|
|
289
|
-
/**
|
|
290
|
-
* Interpolate between 2 values using a periodic function.
|
|
291
|
-
*
|
|
292
|
-
* @param {number} from - the lower bound
|
|
293
|
-
* @param {number} to - the higher bound
|
|
294
|
-
* @param {number} t - value passed to the periodic function
|
|
295
|
-
* @param {(n: number) => number} [fn] - the periodic function (which default to `Math.sin`)
|
|
296
|
-
*/
|
|
297
|
-
wave: (from, to, t, fn = Math.sin) => {
|
|
298
|
-
DEV: assert(isNumber(from), '[litecanvas] wave() 1st param must be a number')
|
|
299
|
-
DEV: assert(isNumber(to), '[litecanvas] wave() 2nd param must be a number')
|
|
300
|
-
DEV: assert(isNumber(t), '[litecanvas] wave() 3rd param must be a number')
|
|
301
|
-
DEV: assert(
|
|
302
|
-
'function' === typeof fn,
|
|
303
|
-
'[litecanvas] wave() 4rd param must be a function (n: number) => number'
|
|
304
|
-
)
|
|
305
|
-
return from + ((fn(t) + 1) / 2) * (to - from)
|
|
306
|
-
},
|
|
307
|
-
|
|
308
307
|
/** RNG API */
|
|
309
308
|
/**
|
|
310
309
|
* Generates a pseudorandom float between min (inclusive) and max (exclusive)
|
package/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Generated by genversion.
|
|
2
|
-
export const version = '0.
|
|
2
|
+
export const version = '0.103.0'
|
package/types/global.d.ts
CHANGED
|
@@ -116,14 +116,15 @@ declare global {
|
|
|
116
116
|
*/
|
|
117
117
|
function norm(value: number, start: number, stop: number): number
|
|
118
118
|
/**
|
|
119
|
-
*
|
|
119
|
+
* Calculates the distance between a point (x1, y1) to another (x2, y2).
|
|
120
120
|
*
|
|
121
|
-
* @param
|
|
122
|
-
* @param
|
|
123
|
-
* @param
|
|
124
|
-
* @param
|
|
121
|
+
* @param x1
|
|
122
|
+
* @param y1
|
|
123
|
+
* @param x2
|
|
124
|
+
* @param y2
|
|
125
|
+
* @returns the distance
|
|
125
126
|
*/
|
|
126
|
-
function
|
|
127
|
+
function dist(x1: number, y1: number, x2: number, y2: number): number
|
|
127
128
|
/**
|
|
128
129
|
* Returns the sine of a number in radians
|
|
129
130
|
*/
|
package/types/types.d.ts
CHANGED
|
@@ -110,14 +110,15 @@ type LitecanvasInstance = {
|
|
|
110
110
|
*/
|
|
111
111
|
norm(value: number, start: number, stop: number): number
|
|
112
112
|
/**
|
|
113
|
-
*
|
|
113
|
+
* Calculates the distance between a point (x1, y1) to another (x2, y2).
|
|
114
114
|
*
|
|
115
|
-
* @param
|
|
116
|
-
* @param
|
|
117
|
-
* @param
|
|
118
|
-
* @param
|
|
115
|
+
* @param x1
|
|
116
|
+
* @param y1
|
|
117
|
+
* @param x2
|
|
118
|
+
* @param y2
|
|
119
|
+
* @returns the distance
|
|
119
120
|
*/
|
|
120
|
-
|
|
121
|
+
dist(x1: number, y1: number, x2: number, y2: number): number
|
|
121
122
|
/**
|
|
122
123
|
* Returns the sine of a number in radians
|
|
123
124
|
*/
|