source: imaps-frontend/node_modules/konva/lib/BezierFunctions.js

main
Last change on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 33.8 KB
RevLine 
[d565449]1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.t2length = exports.getQuadraticArcLength = exports.getCubicArcLength = exports.binomialCoefficients = exports.cValues = exports.tValues = void 0;
4exports.tValues = [
5 [],
6 [],
7 [
8 -0.5773502691896257645091487805019574556476,
9 0.5773502691896257645091487805019574556476,
10 ],
11 [
12 0, -0.7745966692414833770358530799564799221665,
13 0.7745966692414833770358530799564799221665,
14 ],
15 [
16 -0.3399810435848562648026657591032446872005,
17 0.3399810435848562648026657591032446872005,
18 -0.8611363115940525752239464888928095050957,
19 0.8611363115940525752239464888928095050957,
20 ],
21 [
22 0, -0.5384693101056830910363144207002088049672,
23 0.5384693101056830910363144207002088049672,
24 -0.9061798459386639927976268782993929651256,
25 0.9061798459386639927976268782993929651256,
26 ],
27 [
28 0.6612093864662645136613995950199053470064,
29 -0.6612093864662645136613995950199053470064,
30 -0.2386191860831969086305017216807119354186,
31 0.2386191860831969086305017216807119354186,
32 -0.9324695142031520278123015544939946091347,
33 0.9324695142031520278123015544939946091347,
34 ],
35 [
36 0, 0.4058451513773971669066064120769614633473,
37 -0.4058451513773971669066064120769614633473,
38 -0.7415311855993944398638647732807884070741,
39 0.7415311855993944398638647732807884070741,
40 -0.9491079123427585245261896840478512624007,
41 0.9491079123427585245261896840478512624007,
42 ],
43 [
44 -0.1834346424956498049394761423601839806667,
45 0.1834346424956498049394761423601839806667,
46 -0.5255324099163289858177390491892463490419,
47 0.5255324099163289858177390491892463490419,
48 -0.7966664774136267395915539364758304368371,
49 0.7966664774136267395915539364758304368371,
50 -0.9602898564975362316835608685694729904282,
51 0.9602898564975362316835608685694729904282,
52 ],
53 [
54 0, -0.8360311073266357942994297880697348765441,
55 0.8360311073266357942994297880697348765441,
56 -0.9681602395076260898355762029036728700494,
57 0.9681602395076260898355762029036728700494,
58 -0.3242534234038089290385380146433366085719,
59 0.3242534234038089290385380146433366085719,
60 -0.6133714327005903973087020393414741847857,
61 0.6133714327005903973087020393414741847857,
62 ],
63 [
64 -0.1488743389816312108848260011297199846175,
65 0.1488743389816312108848260011297199846175,
66 -0.4333953941292471907992659431657841622,
67 0.4333953941292471907992659431657841622,
68 -0.6794095682990244062343273651148735757692,
69 0.6794095682990244062343273651148735757692,
70 -0.8650633666889845107320966884234930485275,
71 0.8650633666889845107320966884234930485275,
72 -0.9739065285171717200779640120844520534282,
73 0.9739065285171717200779640120844520534282,
74 ],
75 [
76 0, -0.2695431559523449723315319854008615246796,
77 0.2695431559523449723315319854008615246796,
78 -0.5190961292068118159257256694586095544802,
79 0.5190961292068118159257256694586095544802,
80 -0.7301520055740493240934162520311534580496,
81 0.7301520055740493240934162520311534580496,
82 -0.8870625997680952990751577693039272666316,
83 0.8870625997680952990751577693039272666316,
84 -0.9782286581460569928039380011228573907714,
85 0.9782286581460569928039380011228573907714,
86 ],
87 [
88 -0.1252334085114689154724413694638531299833,
89 0.1252334085114689154724413694638531299833,
90 -0.3678314989981801937526915366437175612563,
91 0.3678314989981801937526915366437175612563,
92 -0.587317954286617447296702418940534280369,
93 0.587317954286617447296702418940534280369,
94 -0.7699026741943046870368938332128180759849,
95 0.7699026741943046870368938332128180759849,
96 -0.9041172563704748566784658661190961925375,
97 0.9041172563704748566784658661190961925375,
98 -0.9815606342467192506905490901492808229601,
99 0.9815606342467192506905490901492808229601,
100 ],
101 [
102 0, -0.2304583159551347940655281210979888352115,
103 0.2304583159551347940655281210979888352115,
104 -0.4484927510364468528779128521276398678019,
105 0.4484927510364468528779128521276398678019,
106 -0.6423493394403402206439846069955156500716,
107 0.6423493394403402206439846069955156500716,
108 -0.8015780907333099127942064895828598903056,
109 0.8015780907333099127942064895828598903056,
110 -0.9175983992229779652065478365007195123904,
111 0.9175983992229779652065478365007195123904,
112 -0.9841830547185881494728294488071096110649,
113 0.9841830547185881494728294488071096110649,
114 ],
115 [
116 -0.1080549487073436620662446502198347476119,
117 0.1080549487073436620662446502198347476119,
118 -0.3191123689278897604356718241684754668342,
119 0.3191123689278897604356718241684754668342,
120 -0.5152486363581540919652907185511886623088,
121 0.5152486363581540919652907185511886623088,
122 -0.6872929048116854701480198030193341375384,
123 0.6872929048116854701480198030193341375384,
124 -0.8272013150697649931897947426503949610397,
125 0.8272013150697649931897947426503949610397,
126 -0.928434883663573517336391139377874264477,
127 0.928434883663573517336391139377874264477,
128 -0.986283808696812338841597266704052801676,
129 0.986283808696812338841597266704052801676,
130 ],
131 [
132 0, -0.2011940939974345223006283033945962078128,
133 0.2011940939974345223006283033945962078128,
134 -0.3941513470775633698972073709810454683627,
135 0.3941513470775633698972073709810454683627,
136 -0.5709721726085388475372267372539106412383,
137 0.5709721726085388475372267372539106412383,
138 -0.7244177313601700474161860546139380096308,
139 0.7244177313601700474161860546139380096308,
140 -0.8482065834104272162006483207742168513662,
141 0.8482065834104272162006483207742168513662,
142 -0.9372733924007059043077589477102094712439,
143 0.9372733924007059043077589477102094712439,
144 -0.9879925180204854284895657185866125811469,
145 0.9879925180204854284895657185866125811469,
146 ],
147 [
148 -0.0950125098376374401853193354249580631303,
149 0.0950125098376374401853193354249580631303,
150 -0.281603550779258913230460501460496106486,
151 0.281603550779258913230460501460496106486,
152 -0.45801677765722738634241944298357757354,
153 0.45801677765722738634241944298357757354,
154 -0.6178762444026437484466717640487910189918,
155 0.6178762444026437484466717640487910189918,
156 -0.7554044083550030338951011948474422683538,
157 0.7554044083550030338951011948474422683538,
158 -0.8656312023878317438804678977123931323873,
159 0.8656312023878317438804678977123931323873,
160 -0.9445750230732325760779884155346083450911,
161 0.9445750230732325760779884155346083450911,
162 -0.9894009349916499325961541734503326274262,
163 0.9894009349916499325961541734503326274262,
164 ],
165 [
166 0, -0.1784841814958478558506774936540655574754,
167 0.1784841814958478558506774936540655574754,
168 -0.3512317634538763152971855170953460050405,
169 0.3512317634538763152971855170953460050405,
170 -0.5126905370864769678862465686295518745829,
171 0.5126905370864769678862465686295518745829,
172 -0.6576711592166907658503022166430023351478,
173 0.6576711592166907658503022166430023351478,
174 -0.7815140038968014069252300555204760502239,
175 0.7815140038968014069252300555204760502239,
176 -0.8802391537269859021229556944881556926234,
177 0.8802391537269859021229556944881556926234,
178 -0.9506755217687677612227169578958030214433,
179 0.9506755217687677612227169578958030214433,
180 -0.9905754753144173356754340199406652765077,
181 0.9905754753144173356754340199406652765077,
182 ],
183 [
184 -0.0847750130417353012422618529357838117333,
185 0.0847750130417353012422618529357838117333,
186 -0.2518862256915055095889728548779112301628,
187 0.2518862256915055095889728548779112301628,
188 -0.4117511614628426460359317938330516370789,
189 0.4117511614628426460359317938330516370789,
190 -0.5597708310739475346078715485253291369276,
191 0.5597708310739475346078715485253291369276,
192 -0.6916870430603532078748910812888483894522,
193 0.6916870430603532078748910812888483894522,
194 -0.8037049589725231156824174550145907971032,
195 0.8037049589725231156824174550145907971032,
196 -0.8926024664975557392060605911271455154078,
197 0.8926024664975557392060605911271455154078,
198 -0.9558239495713977551811958929297763099728,
199 0.9558239495713977551811958929297763099728,
200 -0.9915651684209309467300160047061507702525,
201 0.9915651684209309467300160047061507702525,
202 ],
203 [
204 0, -0.1603586456402253758680961157407435495048,
205 0.1603586456402253758680961157407435495048,
206 -0.3165640999636298319901173288498449178922,
207 0.3165640999636298319901173288498449178922,
208 -0.4645707413759609457172671481041023679762,
209 0.4645707413759609457172671481041023679762,
210 -0.6005453046616810234696381649462392798683,
211 0.6005453046616810234696381649462392798683,
212 -0.7209661773352293786170958608237816296571,
213 0.7209661773352293786170958608237816296571,
214 -0.8227146565371428249789224867127139017745,
215 0.8227146565371428249789224867127139017745,
216 -0.9031559036148179016426609285323124878093,
217 0.9031559036148179016426609285323124878093,
218 -0.960208152134830030852778840687651526615,
219 0.960208152134830030852778840687651526615,
220 -0.9924068438435844031890176702532604935893,
221 0.9924068438435844031890176702532604935893,
222 ],
223 [
224 -0.0765265211334973337546404093988382110047,
225 0.0765265211334973337546404093988382110047,
226 -0.227785851141645078080496195368574624743,
227 0.227785851141645078080496195368574624743,
228 -0.3737060887154195606725481770249272373957,
229 0.3737060887154195606725481770249272373957,
230 -0.5108670019508270980043640509552509984254,
231 0.5108670019508270980043640509552509984254,
232 -0.6360536807265150254528366962262859367433,
233 0.6360536807265150254528366962262859367433,
234 -0.7463319064601507926143050703556415903107,
235 0.7463319064601507926143050703556415903107,
236 -0.8391169718222188233945290617015206853296,
237 0.8391169718222188233945290617015206853296,
238 -0.9122344282513259058677524412032981130491,
239 0.9122344282513259058677524412032981130491,
240 -0.963971927277913791267666131197277221912,
241 0.963971927277913791267666131197277221912,
242 -0.9931285991850949247861223884713202782226,
243 0.9931285991850949247861223884713202782226,
244 ],
245 [
246 0, -0.1455618541608950909370309823386863301163,
247 0.1455618541608950909370309823386863301163,
248 -0.288021316802401096600792516064600319909,
249 0.288021316802401096600792516064600319909,
250 -0.4243421202074387835736688885437880520964,
251 0.4243421202074387835736688885437880520964,
252 -0.551618835887219807059018796724313286622,
253 0.551618835887219807059018796724313286622,
254 -0.667138804197412319305966669990339162597,
255 0.667138804197412319305966669990339162597,
256 -0.7684399634756779086158778513062280348209,
257 0.7684399634756779086158778513062280348209,
258 -0.8533633645833172836472506385875676702761,
259 0.8533633645833172836472506385875676702761,
260 -0.9200993341504008287901871337149688941591,
261 0.9200993341504008287901871337149688941591,
262 -0.9672268385663062943166222149076951614246,
263 0.9672268385663062943166222149076951614246,
264 -0.9937521706203895002602420359379409291933,
265 0.9937521706203895002602420359379409291933,
266 ],
267 [
268 -0.0697392733197222212138417961186280818222,
269 0.0697392733197222212138417961186280818222,
270 -0.2078604266882212854788465339195457342156,
271 0.2078604266882212854788465339195457342156,
272 -0.3419358208920842251581474204273796195591,
273 0.3419358208920842251581474204273796195591,
274 -0.4693558379867570264063307109664063460953,
275 0.4693558379867570264063307109664063460953,
276 -0.5876404035069115929588769276386473488776,
277 0.5876404035069115929588769276386473488776,
278 -0.6944872631866827800506898357622567712673,
279 0.6944872631866827800506898357622567712673,
280 -0.7878168059792081620042779554083515213881,
281 0.7878168059792081620042779554083515213881,
282 -0.8658125777203001365364256370193787290847,
283 0.8658125777203001365364256370193787290847,
284 -0.9269567721871740005206929392590531966353,
285 0.9269567721871740005206929392590531966353,
286 -0.9700604978354287271239509867652687108059,
287 0.9700604978354287271239509867652687108059,
288 -0.994294585482399292073031421161298980393,
289 0.994294585482399292073031421161298980393,
290 ],
291 [
292 0, -0.1332568242984661109317426822417661370104,
293 0.1332568242984661109317426822417661370104,
294 -0.264135680970344930533869538283309602979,
295 0.264135680970344930533869538283309602979,
296 -0.390301038030290831421488872880605458578,
297 0.390301038030290831421488872880605458578,
298 -0.5095014778460075496897930478668464305448,
299 0.5095014778460075496897930478668464305448,
300 -0.6196098757636461563850973116495956533871,
301 0.6196098757636461563850973116495956533871,
302 -0.7186613631319501944616244837486188483299,
303 0.7186613631319501944616244837486188483299,
304 -0.8048884016188398921511184069967785579414,
305 0.8048884016188398921511184069967785579414,
306 -0.8767523582704416673781568859341456716389,
307 0.8767523582704416673781568859341456716389,
308 -0.9329710868260161023491969890384229782357,
309 0.9329710868260161023491969890384229782357,
310 -0.9725424712181152319560240768207773751816,
311 0.9725424712181152319560240768207773751816,
312 -0.9947693349975521235239257154455743605736,
313 0.9947693349975521235239257154455743605736,
314 ],
315 [
316 -0.0640568928626056260850430826247450385909,
317 0.0640568928626056260850430826247450385909,
318 -0.1911188674736163091586398207570696318404,
319 0.1911188674736163091586398207570696318404,
320 -0.3150426796961633743867932913198102407864,
321 0.3150426796961633743867932913198102407864,
322 -0.4337935076260451384870842319133497124524,
323 0.4337935076260451384870842319133497124524,
324 -0.5454214713888395356583756172183723700107,
325 0.5454214713888395356583756172183723700107,
326 -0.6480936519369755692524957869107476266696,
327 0.6480936519369755692524957869107476266696,
328 -0.7401241915785543642438281030999784255232,
329 0.7401241915785543642438281030999784255232,
330 -0.8200019859739029219539498726697452080761,
331 0.8200019859739029219539498726697452080761,
332 -0.8864155270044010342131543419821967550873,
333 0.8864155270044010342131543419821967550873,
334 -0.9382745520027327585236490017087214496548,
335 0.9382745520027327585236490017087214496548,
336 -0.9747285559713094981983919930081690617411,
337 0.9747285559713094981983919930081690617411,
338 -0.9951872199970213601799974097007368118745,
339 0.9951872199970213601799974097007368118745,
340 ],
341];
342exports.cValues = [
343 [],
344 [],
345 [1.0, 1.0],
346 [
347 0.8888888888888888888888888888888888888888,
348 0.5555555555555555555555555555555555555555,
349 0.5555555555555555555555555555555555555555,
350 ],
351 [
352 0.6521451548625461426269360507780005927646,
353 0.6521451548625461426269360507780005927646,
354 0.3478548451374538573730639492219994072353,
355 0.3478548451374538573730639492219994072353,
356 ],
357 [
358 0.5688888888888888888888888888888888888888,
359 0.4786286704993664680412915148356381929122,
360 0.4786286704993664680412915148356381929122,
361 0.2369268850561890875142640407199173626432,
362 0.2369268850561890875142640407199173626432,
363 ],
364 [
365 0.3607615730481386075698335138377161116615,
366 0.3607615730481386075698335138377161116615,
367 0.4679139345726910473898703439895509948116,
368 0.4679139345726910473898703439895509948116,
369 0.1713244923791703450402961421727328935268,
370 0.1713244923791703450402961421727328935268,
371 ],
372 [
373 0.4179591836734693877551020408163265306122,
374 0.3818300505051189449503697754889751338783,
375 0.3818300505051189449503697754889751338783,
376 0.2797053914892766679014677714237795824869,
377 0.2797053914892766679014677714237795824869,
378 0.1294849661688696932706114326790820183285,
379 0.1294849661688696932706114326790820183285,
380 ],
381 [
382 0.3626837833783619829651504492771956121941,
383 0.3626837833783619829651504492771956121941,
384 0.3137066458778872873379622019866013132603,
385 0.3137066458778872873379622019866013132603,
386 0.2223810344533744705443559944262408844301,
387 0.2223810344533744705443559944262408844301,
388 0.1012285362903762591525313543099621901153,
389 0.1012285362903762591525313543099621901153,
390 ],
391 [
392 0.3302393550012597631645250692869740488788,
393 0.1806481606948574040584720312429128095143,
394 0.1806481606948574040584720312429128095143,
395 0.0812743883615744119718921581105236506756,
396 0.0812743883615744119718921581105236506756,
397 0.3123470770400028400686304065844436655987,
398 0.3123470770400028400686304065844436655987,
399 0.2606106964029354623187428694186328497718,
400 0.2606106964029354623187428694186328497718,
401 ],
402 [
403 0.295524224714752870173892994651338329421,
404 0.295524224714752870173892994651338329421,
405 0.2692667193099963550912269215694693528597,
406 0.2692667193099963550912269215694693528597,
407 0.2190863625159820439955349342281631924587,
408 0.2190863625159820439955349342281631924587,
409 0.1494513491505805931457763396576973324025,
410 0.1494513491505805931457763396576973324025,
411 0.0666713443086881375935688098933317928578,
412 0.0666713443086881375935688098933317928578,
413 ],
414 [
415 0.272925086777900630714483528336342189156,
416 0.2628045445102466621806888698905091953727,
417 0.2628045445102466621806888698905091953727,
418 0.2331937645919904799185237048431751394317,
419 0.2331937645919904799185237048431751394317,
420 0.1862902109277342514260976414316558916912,
421 0.1862902109277342514260976414316558916912,
422 0.1255803694649046246346942992239401001976,
423 0.1255803694649046246346942992239401001976,
424 0.0556685671161736664827537204425485787285,
425 0.0556685671161736664827537204425485787285,
426 ],
427 [
428 0.2491470458134027850005624360429512108304,
429 0.2491470458134027850005624360429512108304,
430 0.2334925365383548087608498989248780562594,
431 0.2334925365383548087608498989248780562594,
432 0.2031674267230659217490644558097983765065,
433 0.2031674267230659217490644558097983765065,
434 0.160078328543346226334652529543359071872,
435 0.160078328543346226334652529543359071872,
436 0.1069393259953184309602547181939962242145,
437 0.1069393259953184309602547181939962242145,
438 0.047175336386511827194615961485017060317,
439 0.047175336386511827194615961485017060317,
440 ],
441 [
442 0.2325515532308739101945895152688359481566,
443 0.2262831802628972384120901860397766184347,
444 0.2262831802628972384120901860397766184347,
445 0.2078160475368885023125232193060527633865,
446 0.2078160475368885023125232193060527633865,
447 0.1781459807619457382800466919960979955128,
448 0.1781459807619457382800466919960979955128,
449 0.1388735102197872384636017768688714676218,
450 0.1388735102197872384636017768688714676218,
451 0.0921214998377284479144217759537971209236,
452 0.0921214998377284479144217759537971209236,
453 0.0404840047653158795200215922009860600419,
454 0.0404840047653158795200215922009860600419,
455 ],
456 [
457 0.2152638534631577901958764433162600352749,
458 0.2152638534631577901958764433162600352749,
459 0.2051984637212956039659240656612180557103,
460 0.2051984637212956039659240656612180557103,
461 0.1855383974779378137417165901251570362489,
462 0.1855383974779378137417165901251570362489,
463 0.1572031671581935345696019386238421566056,
464 0.1572031671581935345696019386238421566056,
465 0.1215185706879031846894148090724766259566,
466 0.1215185706879031846894148090724766259566,
467 0.0801580871597602098056332770628543095836,
468 0.0801580871597602098056332770628543095836,
469 0.0351194603317518630318328761381917806197,
470 0.0351194603317518630318328761381917806197,
471 ],
472 [
473 0.2025782419255612728806201999675193148386,
474 0.1984314853271115764561183264438393248186,
475 0.1984314853271115764561183264438393248186,
476 0.1861610000155622110268005618664228245062,
477 0.1861610000155622110268005618664228245062,
478 0.1662692058169939335532008604812088111309,
479 0.1662692058169939335532008604812088111309,
480 0.1395706779261543144478047945110283225208,
481 0.1395706779261543144478047945110283225208,
482 0.1071592204671719350118695466858693034155,
483 0.1071592204671719350118695466858693034155,
484 0.0703660474881081247092674164506673384667,
485 0.0703660474881081247092674164506673384667,
486 0.0307532419961172683546283935772044177217,
487 0.0307532419961172683546283935772044177217,
488 ],
489 [
490 0.1894506104550684962853967232082831051469,
491 0.1894506104550684962853967232082831051469,
492 0.1826034150449235888667636679692199393835,
493 0.1826034150449235888667636679692199393835,
494 0.1691565193950025381893120790303599622116,
495 0.1691565193950025381893120790303599622116,
496 0.1495959888165767320815017305474785489704,
497 0.1495959888165767320815017305474785489704,
498 0.1246289712555338720524762821920164201448,
499 0.1246289712555338720524762821920164201448,
500 0.0951585116824927848099251076022462263552,
501 0.0951585116824927848099251076022462263552,
502 0.0622535239386478928628438369943776942749,
503 0.0622535239386478928628438369943776942749,
504 0.0271524594117540948517805724560181035122,
505 0.0271524594117540948517805724560181035122,
506 ],
507 [
508 0.1794464703562065254582656442618856214487,
509 0.1765627053669926463252709901131972391509,
510 0.1765627053669926463252709901131972391509,
511 0.1680041021564500445099706637883231550211,
512 0.1680041021564500445099706637883231550211,
513 0.1540457610768102880814315948019586119404,
514 0.1540457610768102880814315948019586119404,
515 0.1351363684685254732863199817023501973721,
516 0.1351363684685254732863199817023501973721,
517 0.1118838471934039710947883856263559267358,
518 0.1118838471934039710947883856263559267358,
519 0.0850361483171791808835353701910620738504,
520 0.0850361483171791808835353701910620738504,
521 0.0554595293739872011294401653582446605128,
522 0.0554595293739872011294401653582446605128,
523 0.0241483028685479319601100262875653246916,
524 0.0241483028685479319601100262875653246916,
525 ],
526 [
527 0.1691423829631435918406564701349866103341,
528 0.1691423829631435918406564701349866103341,
529 0.1642764837458327229860537764659275904123,
530 0.1642764837458327229860537764659275904123,
531 0.1546846751262652449254180038363747721932,
532 0.1546846751262652449254180038363747721932,
533 0.1406429146706506512047313037519472280955,
534 0.1406429146706506512047313037519472280955,
535 0.1225552067114784601845191268002015552281,
536 0.1225552067114784601845191268002015552281,
537 0.1009420441062871655628139849248346070628,
538 0.1009420441062871655628139849248346070628,
539 0.0764257302548890565291296776166365256053,
540 0.0764257302548890565291296776166365256053,
541 0.0497145488949697964533349462026386416808,
542 0.0497145488949697964533349462026386416808,
543 0.0216160135264833103133427102664524693876,
544 0.0216160135264833103133427102664524693876,
545 ],
546 [
547 0.1610544498487836959791636253209167350399,
548 0.1589688433939543476499564394650472016787,
549 0.1589688433939543476499564394650472016787,
550 0.152766042065859666778855400897662998461,
551 0.152766042065859666778855400897662998461,
552 0.1426067021736066117757461094419029724756,
553 0.1426067021736066117757461094419029724756,
554 0.1287539625393362276755157848568771170558,
555 0.1287539625393362276755157848568771170558,
556 0.1115666455473339947160239016817659974813,
557 0.1115666455473339947160239016817659974813,
558 0.0914900216224499994644620941238396526609,
559 0.0914900216224499994644620941238396526609,
560 0.0690445427376412265807082580060130449618,
561 0.0690445427376412265807082580060130449618,
562 0.0448142267656996003328381574019942119517,
563 0.0448142267656996003328381574019942119517,
564 0.0194617882297264770363120414644384357529,
565 0.0194617882297264770363120414644384357529,
566 ],
567 [
568 0.1527533871307258506980843319550975934919,
569 0.1527533871307258506980843319550975934919,
570 0.1491729864726037467878287370019694366926,
571 0.1491729864726037467878287370019694366926,
572 0.1420961093183820513292983250671649330345,
573 0.1420961093183820513292983250671649330345,
574 0.1316886384491766268984944997481631349161,
575 0.1316886384491766268984944997481631349161,
576 0.118194531961518417312377377711382287005,
577 0.118194531961518417312377377711382287005,
578 0.1019301198172404350367501354803498761666,
579 0.1019301198172404350367501354803498761666,
580 0.0832767415767047487247581432220462061001,
581 0.0832767415767047487247581432220462061001,
582 0.0626720483341090635695065351870416063516,
583 0.0626720483341090635695065351870416063516,
584 0.040601429800386941331039952274932109879,
585 0.040601429800386941331039952274932109879,
586 0.0176140071391521183118619623518528163621,
587 0.0176140071391521183118619623518528163621,
588 ],
589 [
590 0.1460811336496904271919851476833711882448,
591 0.1445244039899700590638271665537525436099,
592 0.1445244039899700590638271665537525436099,
593 0.1398873947910731547221334238675831108927,
594 0.1398873947910731547221334238675831108927,
595 0.132268938633337461781052574496775604329,
596 0.132268938633337461781052574496775604329,
597 0.1218314160537285341953671771257335983563,
598 0.1218314160537285341953671771257335983563,
599 0.1087972991671483776634745780701056420336,
600 0.1087972991671483776634745780701056420336,
601 0.0934444234560338615532897411139320884835,
602 0.0934444234560338615532897411139320884835,
603 0.0761001136283793020170516533001831792261,
604 0.0761001136283793020170516533001831792261,
605 0.0571344254268572082836358264724479574912,
606 0.0571344254268572082836358264724479574912,
607 0.0369537897708524937999506682993296661889,
608 0.0369537897708524937999506682993296661889,
609 0.0160172282577743333242246168584710152658,
610 0.0160172282577743333242246168584710152658,
611 ],
612 [
613 0.1392518728556319933754102483418099578739,
614 0.1392518728556319933754102483418099578739,
615 0.1365414983460151713525738312315173965863,
616 0.1365414983460151713525738312315173965863,
617 0.1311735047870623707329649925303074458757,
618 0.1311735047870623707329649925303074458757,
619 0.1232523768105124242855609861548144719594,
620 0.1232523768105124242855609861548144719594,
621 0.1129322960805392183934006074217843191142,
622 0.1129322960805392183934006074217843191142,
623 0.1004141444428809649320788378305362823508,
624 0.1004141444428809649320788378305362823508,
625 0.0859416062170677274144436813727028661891,
626 0.0859416062170677274144436813727028661891,
627 0.0697964684245204880949614189302176573987,
628 0.0697964684245204880949614189302176573987,
629 0.0522933351526832859403120512732112561121,
630 0.0522933351526832859403120512732112561121,
631 0.0337749015848141547933022468659129013491,
632 0.0337749015848141547933022468659129013491,
633 0.0146279952982722006849910980471854451902,
634 0.0146279952982722006849910980471854451902,
635 ],
636 [
637 0.1336545721861061753514571105458443385831,
638 0.132462039404696617371642464703316925805,
639 0.132462039404696617371642464703316925805,
640 0.1289057221880821499785953393997936532597,
641 0.1289057221880821499785953393997936532597,
642 0.1230490843067295304675784006720096548158,
643 0.1230490843067295304675784006720096548158,
644 0.1149966402224113649416435129339613014914,
645 0.1149966402224113649416435129339613014914,
646 0.1048920914645414100740861850147438548584,
647 0.1048920914645414100740861850147438548584,
648 0.0929157660600351474770186173697646486034,
649 0.0929157660600351474770186173697646486034,
650 0.0792814117767189549228925247420432269137,
651 0.0792814117767189549228925247420432269137,
652 0.0642324214085258521271696151589109980391,
653 0.0642324214085258521271696151589109980391,
654 0.0480376717310846685716410716320339965612,
655 0.0480376717310846685716410716320339965612,
656 0.0309880058569794443106942196418845053837,
657 0.0309880058569794443106942196418845053837,
658 0.0134118594871417720813094934586150649766,
659 0.0134118594871417720813094934586150649766,
660 ],
661 [
662 0.1279381953467521569740561652246953718517,
663 0.1279381953467521569740561652246953718517,
664 0.1258374563468282961213753825111836887264,
665 0.1258374563468282961213753825111836887264,
666 0.121670472927803391204463153476262425607,
667 0.121670472927803391204463153476262425607,
668 0.1155056680537256013533444839067835598622,
669 0.1155056680537256013533444839067835598622,
670 0.1074442701159656347825773424466062227946,
671 0.1074442701159656347825773424466062227946,
672 0.0976186521041138882698806644642471544279,
673 0.0976186521041138882698806644642471544279,
674 0.086190161531953275917185202983742667185,
675 0.086190161531953275917185202983742667185,
676 0.0733464814110803057340336152531165181193,
677 0.0733464814110803057340336152531165181193,
678 0.0592985849154367807463677585001085845412,
679 0.0592985849154367807463677585001085845412,
680 0.0442774388174198061686027482113382288593,
681 0.0442774388174198061686027482113382288593,
682 0.0285313886289336631813078159518782864491,
683 0.0285313886289336631813078159518782864491,
684 0.0123412297999871995468056670700372915759,
685 0.0123412297999871995468056670700372915759,
686 ],
687];
688exports.binomialCoefficients = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]];
689const getCubicArcLength = (xs, ys, t) => {
690 let z;
691 let sum;
692 let correctedT;
693 const n = 20;
694 z = t / 2;
695 sum = 0;
696 for (let i = 0; i < n; i++) {
697 correctedT = z * exports.tValues[n][i] + z;
698 sum += exports.cValues[n][i] * BFunc(xs, ys, correctedT);
699 }
700 return z * sum;
701};
702exports.getCubicArcLength = getCubicArcLength;
703const getQuadraticArcLength = (xs, ys, t) => {
704 if (t === undefined) {
705 t = 1;
706 }
707 const ax = xs[0] - 2 * xs[1] + xs[2];
708 const ay = ys[0] - 2 * ys[1] + ys[2];
709 const bx = 2 * xs[1] - 2 * xs[0];
710 const by = 2 * ys[1] - 2 * ys[0];
711 const A = 4 * (ax * ax + ay * ay);
712 const B = 4 * (ax * bx + ay * by);
713 const C = bx * bx + by * by;
714 if (A === 0) {
715 return (t * Math.sqrt(Math.pow(xs[2] - xs[0], 2) + Math.pow(ys[2] - ys[0], 2)));
716 }
717 const b = B / (2 * A);
718 const c = C / A;
719 const u = t + b;
720 const k = c - b * b;
721 const uuk = u * u + k > 0 ? Math.sqrt(u * u + k) : 0;
722 const bbk = b * b + k > 0 ? Math.sqrt(b * b + k) : 0;
723 const term = b + Math.sqrt(b * b + k) !== 0
724 ? k * Math.log(Math.abs((u + uuk) / (b + bbk)))
725 : 0;
726 return (Math.sqrt(A) / 2) * (u * uuk - b * bbk + term);
727};
728exports.getQuadraticArcLength = getQuadraticArcLength;
729function BFunc(xs, ys, t) {
730 const xbase = getDerivative(1, t, xs);
731 const ybase = getDerivative(1, t, ys);
732 const combined = xbase * xbase + ybase * ybase;
733 return Math.sqrt(combined);
734}
735const getDerivative = (derivative, t, vs) => {
736 const n = vs.length - 1;
737 let _vs;
738 let value;
739 if (n === 0) {
740 return 0;
741 }
742 if (derivative === 0) {
743 value = 0;
744 for (let k = 0; k <= n; k++) {
745 value +=
746 exports.binomialCoefficients[n][k] *
747 Math.pow(1 - t, n - k) *
748 Math.pow(t, k) *
749 vs[k];
750 }
751 return value;
752 }
753 else {
754 _vs = new Array(n);
755 for (let k = 0; k < n; k++) {
756 _vs[k] = n * (vs[k + 1] - vs[k]);
757 }
758 return getDerivative(derivative - 1, t, _vs);
759 }
760};
761const t2length = (length, totalLength, func) => {
762 let error = 1;
763 let t = length / totalLength;
764 let step = (length - func(t)) / totalLength;
765 let numIterations = 0;
766 while (error > 0.001) {
767 const increasedTLength = func(t + step);
768 const increasedTError = Math.abs(length - increasedTLength) / totalLength;
769 if (increasedTError < error) {
770 error = increasedTError;
771 t += step;
772 }
773 else {
774 const decreasedTLength = func(t - step);
775 const decreasedTError = Math.abs(length - decreasedTLength) / totalLength;
776 if (decreasedTError < error) {
777 error = decreasedTError;
778 t -= step;
779 }
780 else {
781 step /= 2;
782 }
783 }
784 numIterations++;
785 if (numIterations > 500) {
786 break;
787 }
788 }
789 return t;
790};
791exports.t2length = t2length;
Note: See TracBrowser for help on using the repository browser.