@nasser-sw/fabric 7.0.1-beta3 → 7.0.1-beta5

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.
Files changed (105) hide show
  1. package/0 +0 -0
  2. package/dist/index.js +345 -162
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.min.js +1 -1
  5. package/dist/index.min.js.map +1 -1
  6. package/dist/index.min.mjs +1 -1
  7. package/dist/index.min.mjs.map +1 -1
  8. package/dist/index.mjs +345 -162
  9. package/dist/index.mjs.map +1 -1
  10. package/dist/index.node.cjs +345 -162
  11. package/dist/index.node.cjs.map +1 -1
  12. package/dist/index.node.mjs +345 -162
  13. package/dist/index.node.mjs.map +1 -1
  14. package/dist/package.json.min.mjs +1 -1
  15. package/dist/package.json.mjs +1 -1
  16. package/dist/src/shapes/Line.d.ts +32 -86
  17. package/dist/src/shapes/Line.d.ts.map +1 -1
  18. package/dist/src/shapes/Line.min.mjs +1 -1
  19. package/dist/src/shapes/Line.min.mjs.map +1 -1
  20. package/dist/src/shapes/Line.mjs +345 -161
  21. package/dist/src/shapes/Line.mjs.map +1 -1
  22. package/dist-extensions/src/shapes/CustomLine.d.ts +10 -0
  23. package/dist-extensions/src/shapes/CustomLine.d.ts.map +1 -0
  24. package/dist-extensions/src/shapes/Line.d.ts +32 -86
  25. package/dist-extensions/src/shapes/Line.d.ts.map +1 -1
  26. package/fabric-test-editor.html +157 -8
  27. package/fabric-test2.html +513 -0
  28. package/fabric.ts +182 -182
  29. package/package.json +1 -1
  30. package/src/shapes/Line.ts +397 -164
  31. package/debug/konva/CHANGELOG.md +0 -1474
  32. package/debug/konva/LICENSE +0 -22
  33. package/debug/konva/README.md +0 -205
  34. package/debug/konva/gulpfile.mjs +0 -110
  35. package/debug/konva/package.json +0 -139
  36. package/debug/konva/release.sh +0 -65
  37. package/debug/konva/resources/doc-includes/ContainerParams.txt +0 -6
  38. package/debug/konva/resources/doc-includes/NodeParams.txt +0 -20
  39. package/debug/konva/resources/doc-includes/ShapeParams.txt +0 -53
  40. package/debug/konva/resources/jsdoc.conf.json +0 -28
  41. package/debug/konva/rollup.config.mjs +0 -32
  42. package/debug/konva/src/Animation.ts +0 -237
  43. package/debug/konva/src/BezierFunctions.ts +0 -826
  44. package/debug/konva/src/Canvas.ts +0 -193
  45. package/debug/konva/src/Container.ts +0 -649
  46. package/debug/konva/src/Context.ts +0 -1017
  47. package/debug/konva/src/Core.ts +0 -5
  48. package/debug/konva/src/DragAndDrop.ts +0 -173
  49. package/debug/konva/src/Factory.ts +0 -246
  50. package/debug/konva/src/FastLayer.ts +0 -29
  51. package/debug/konva/src/Global.ts +0 -210
  52. package/debug/konva/src/Group.ts +0 -31
  53. package/debug/konva/src/Layer.ts +0 -546
  54. package/debug/konva/src/Node.ts +0 -3477
  55. package/debug/konva/src/PointerEvents.ts +0 -67
  56. package/debug/konva/src/Shape.ts +0 -2081
  57. package/debug/konva/src/Stage.ts +0 -1000
  58. package/debug/konva/src/Tween.ts +0 -811
  59. package/debug/konva/src/Util.ts +0 -1123
  60. package/debug/konva/src/Validators.ts +0 -210
  61. package/debug/konva/src/_CoreInternals.ts +0 -85
  62. package/debug/konva/src/_FullInternals.ts +0 -171
  63. package/debug/konva/src/canvas-backend.ts +0 -36
  64. package/debug/konva/src/filters/Blur.ts +0 -388
  65. package/debug/konva/src/filters/Brighten.ts +0 -48
  66. package/debug/konva/src/filters/Brightness.ts +0 -30
  67. package/debug/konva/src/filters/Contrast.ts +0 -75
  68. package/debug/konva/src/filters/Emboss.ts +0 -207
  69. package/debug/konva/src/filters/Enhance.ts +0 -154
  70. package/debug/konva/src/filters/Grayscale.ts +0 -25
  71. package/debug/konva/src/filters/HSL.ts +0 -108
  72. package/debug/konva/src/filters/HSV.ts +0 -106
  73. package/debug/konva/src/filters/Invert.ts +0 -23
  74. package/debug/konva/src/filters/Kaleidoscope.ts +0 -274
  75. package/debug/konva/src/filters/Mask.ts +0 -220
  76. package/debug/konva/src/filters/Noise.ts +0 -44
  77. package/debug/konva/src/filters/Pixelate.ts +0 -107
  78. package/debug/konva/src/filters/Posterize.ts +0 -46
  79. package/debug/konva/src/filters/RGB.ts +0 -82
  80. package/debug/konva/src/filters/RGBA.ts +0 -103
  81. package/debug/konva/src/filters/Sepia.ts +0 -27
  82. package/debug/konva/src/filters/Solarize.ts +0 -29
  83. package/debug/konva/src/filters/Threshold.ts +0 -44
  84. package/debug/konva/src/index.ts +0 -3
  85. package/debug/konva/src/shapes/Arc.ts +0 -176
  86. package/debug/konva/src/shapes/Arrow.ts +0 -231
  87. package/debug/konva/src/shapes/Circle.ts +0 -76
  88. package/debug/konva/src/shapes/Ellipse.ts +0 -121
  89. package/debug/konva/src/shapes/Image.ts +0 -319
  90. package/debug/konva/src/shapes/Label.ts +0 -386
  91. package/debug/konva/src/shapes/Line.ts +0 -364
  92. package/debug/konva/src/shapes/Path.ts +0 -1013
  93. package/debug/konva/src/shapes/Rect.ts +0 -79
  94. package/debug/konva/src/shapes/RegularPolygon.ts +0 -167
  95. package/debug/konva/src/shapes/Ring.ts +0 -94
  96. package/debug/konva/src/shapes/Sprite.ts +0 -370
  97. package/debug/konva/src/shapes/Star.ts +0 -125
  98. package/debug/konva/src/shapes/Text.ts +0 -1065
  99. package/debug/konva/src/shapes/TextPath.ts +0 -583
  100. package/debug/konva/src/shapes/Transformer.ts +0 -1889
  101. package/debug/konva/src/shapes/Wedge.ts +0 -129
  102. package/debug/konva/src/skia-backend.ts +0 -35
  103. package/debug/konva/src/types.ts +0 -84
  104. package/debug/konva/tsconfig.json +0 -31
  105. package/debug/konva/tsconfig.test.json +0 -7
@@ -1,826 +0,0 @@
1
- // Credits: rveciana/svg-path-properties
2
-
3
- // Legendre-Gauss abscissae (xi values, defined at i=n as the roots of the nth order Legendre polynomial Pn(x))
4
- export const 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
- ];
342
-
343
- // Legendre-Gauss weights (wi values, defined by a function linked to in the Bezier primer article)
344
- export const cValues = [
345
- [],
346
- [],
347
- [1.0, 1.0],
348
- [
349
- 0.8888888888888888888888888888888888888888,
350
- 0.5555555555555555555555555555555555555555,
351
- 0.5555555555555555555555555555555555555555,
352
- ],
353
- [
354
- 0.6521451548625461426269360507780005927646,
355
- 0.6521451548625461426269360507780005927646,
356
- 0.3478548451374538573730639492219994072353,
357
- 0.3478548451374538573730639492219994072353,
358
- ],
359
- [
360
- 0.5688888888888888888888888888888888888888,
361
- 0.4786286704993664680412915148356381929122,
362
- 0.4786286704993664680412915148356381929122,
363
- 0.2369268850561890875142640407199173626432,
364
- 0.2369268850561890875142640407199173626432,
365
- ],
366
- [
367
- 0.3607615730481386075698335138377161116615,
368
- 0.3607615730481386075698335138377161116615,
369
- 0.4679139345726910473898703439895509948116,
370
- 0.4679139345726910473898703439895509948116,
371
- 0.1713244923791703450402961421727328935268,
372
- 0.1713244923791703450402961421727328935268,
373
- ],
374
- [
375
- 0.4179591836734693877551020408163265306122,
376
- 0.3818300505051189449503697754889751338783,
377
- 0.3818300505051189449503697754889751338783,
378
- 0.2797053914892766679014677714237795824869,
379
- 0.2797053914892766679014677714237795824869,
380
- 0.1294849661688696932706114326790820183285,
381
- 0.1294849661688696932706114326790820183285,
382
- ],
383
- [
384
- 0.3626837833783619829651504492771956121941,
385
- 0.3626837833783619829651504492771956121941,
386
- 0.3137066458778872873379622019866013132603,
387
- 0.3137066458778872873379622019866013132603,
388
- 0.2223810344533744705443559944262408844301,
389
- 0.2223810344533744705443559944262408844301,
390
- 0.1012285362903762591525313543099621901153,
391
- 0.1012285362903762591525313543099621901153,
392
- ],
393
- [
394
- 0.3302393550012597631645250692869740488788,
395
- 0.1806481606948574040584720312429128095143,
396
- 0.1806481606948574040584720312429128095143,
397
- 0.0812743883615744119718921581105236506756,
398
- 0.0812743883615744119718921581105236506756,
399
- 0.3123470770400028400686304065844436655987,
400
- 0.3123470770400028400686304065844436655987,
401
- 0.2606106964029354623187428694186328497718,
402
- 0.2606106964029354623187428694186328497718,
403
- ],
404
- [
405
- 0.295524224714752870173892994651338329421,
406
- 0.295524224714752870173892994651338329421,
407
- 0.2692667193099963550912269215694693528597,
408
- 0.2692667193099963550912269215694693528597,
409
- 0.2190863625159820439955349342281631924587,
410
- 0.2190863625159820439955349342281631924587,
411
- 0.1494513491505805931457763396576973324025,
412
- 0.1494513491505805931457763396576973324025,
413
- 0.0666713443086881375935688098933317928578,
414
- 0.0666713443086881375935688098933317928578,
415
- ],
416
- [
417
- 0.272925086777900630714483528336342189156,
418
- 0.2628045445102466621806888698905091953727,
419
- 0.2628045445102466621806888698905091953727,
420
- 0.2331937645919904799185237048431751394317,
421
- 0.2331937645919904799185237048431751394317,
422
- 0.1862902109277342514260976414316558916912,
423
- 0.1862902109277342514260976414316558916912,
424
- 0.1255803694649046246346942992239401001976,
425
- 0.1255803694649046246346942992239401001976,
426
- 0.0556685671161736664827537204425485787285,
427
- 0.0556685671161736664827537204425485787285,
428
- ],
429
- [
430
- 0.2491470458134027850005624360429512108304,
431
- 0.2491470458134027850005624360429512108304,
432
- 0.2334925365383548087608498989248780562594,
433
- 0.2334925365383548087608498989248780562594,
434
- 0.2031674267230659217490644558097983765065,
435
- 0.2031674267230659217490644558097983765065,
436
- 0.160078328543346226334652529543359071872,
437
- 0.160078328543346226334652529543359071872,
438
- 0.1069393259953184309602547181939962242145,
439
- 0.1069393259953184309602547181939962242145,
440
- 0.047175336386511827194615961485017060317,
441
- 0.047175336386511827194615961485017060317,
442
- ],
443
- [
444
- 0.2325515532308739101945895152688359481566,
445
- 0.2262831802628972384120901860397766184347,
446
- 0.2262831802628972384120901860397766184347,
447
- 0.2078160475368885023125232193060527633865,
448
- 0.2078160475368885023125232193060527633865,
449
- 0.1781459807619457382800466919960979955128,
450
- 0.1781459807619457382800466919960979955128,
451
- 0.1388735102197872384636017768688714676218,
452
- 0.1388735102197872384636017768688714676218,
453
- 0.0921214998377284479144217759537971209236,
454
- 0.0921214998377284479144217759537971209236,
455
- 0.0404840047653158795200215922009860600419,
456
- 0.0404840047653158795200215922009860600419,
457
- ],
458
- [
459
- 0.2152638534631577901958764433162600352749,
460
- 0.2152638534631577901958764433162600352749,
461
- 0.2051984637212956039659240656612180557103,
462
- 0.2051984637212956039659240656612180557103,
463
- 0.1855383974779378137417165901251570362489,
464
- 0.1855383974779378137417165901251570362489,
465
- 0.1572031671581935345696019386238421566056,
466
- 0.1572031671581935345696019386238421566056,
467
- 0.1215185706879031846894148090724766259566,
468
- 0.1215185706879031846894148090724766259566,
469
- 0.0801580871597602098056332770628543095836,
470
- 0.0801580871597602098056332770628543095836,
471
- 0.0351194603317518630318328761381917806197,
472
- 0.0351194603317518630318328761381917806197,
473
- ],
474
- [
475
- 0.2025782419255612728806201999675193148386,
476
- 0.1984314853271115764561183264438393248186,
477
- 0.1984314853271115764561183264438393248186,
478
- 0.1861610000155622110268005618664228245062,
479
- 0.1861610000155622110268005618664228245062,
480
- 0.1662692058169939335532008604812088111309,
481
- 0.1662692058169939335532008604812088111309,
482
- 0.1395706779261543144478047945110283225208,
483
- 0.1395706779261543144478047945110283225208,
484
- 0.1071592204671719350118695466858693034155,
485
- 0.1071592204671719350118695466858693034155,
486
- 0.0703660474881081247092674164506673384667,
487
- 0.0703660474881081247092674164506673384667,
488
- 0.0307532419961172683546283935772044177217,
489
- 0.0307532419961172683546283935772044177217,
490
- ],
491
- [
492
- 0.1894506104550684962853967232082831051469,
493
- 0.1894506104550684962853967232082831051469,
494
- 0.1826034150449235888667636679692199393835,
495
- 0.1826034150449235888667636679692199393835,
496
- 0.1691565193950025381893120790303599622116,
497
- 0.1691565193950025381893120790303599622116,
498
- 0.1495959888165767320815017305474785489704,
499
- 0.1495959888165767320815017305474785489704,
500
- 0.1246289712555338720524762821920164201448,
501
- 0.1246289712555338720524762821920164201448,
502
- 0.0951585116824927848099251076022462263552,
503
- 0.0951585116824927848099251076022462263552,
504
- 0.0622535239386478928628438369943776942749,
505
- 0.0622535239386478928628438369943776942749,
506
- 0.0271524594117540948517805724560181035122,
507
- 0.0271524594117540948517805724560181035122,
508
- ],
509
- [
510
- 0.1794464703562065254582656442618856214487,
511
- 0.1765627053669926463252709901131972391509,
512
- 0.1765627053669926463252709901131972391509,
513
- 0.1680041021564500445099706637883231550211,
514
- 0.1680041021564500445099706637883231550211,
515
- 0.1540457610768102880814315948019586119404,
516
- 0.1540457610768102880814315948019586119404,
517
- 0.1351363684685254732863199817023501973721,
518
- 0.1351363684685254732863199817023501973721,
519
- 0.1118838471934039710947883856263559267358,
520
- 0.1118838471934039710947883856263559267358,
521
- 0.0850361483171791808835353701910620738504,
522
- 0.0850361483171791808835353701910620738504,
523
- 0.0554595293739872011294401653582446605128,
524
- 0.0554595293739872011294401653582446605128,
525
- 0.0241483028685479319601100262875653246916,
526
- 0.0241483028685479319601100262875653246916,
527
- ],
528
- [
529
- 0.1691423829631435918406564701349866103341,
530
- 0.1691423829631435918406564701349866103341,
531
- 0.1642764837458327229860537764659275904123,
532
- 0.1642764837458327229860537764659275904123,
533
- 0.1546846751262652449254180038363747721932,
534
- 0.1546846751262652449254180038363747721932,
535
- 0.1406429146706506512047313037519472280955,
536
- 0.1406429146706506512047313037519472280955,
537
- 0.1225552067114784601845191268002015552281,
538
- 0.1225552067114784601845191268002015552281,
539
- 0.1009420441062871655628139849248346070628,
540
- 0.1009420441062871655628139849248346070628,
541
- 0.0764257302548890565291296776166365256053,
542
- 0.0764257302548890565291296776166365256053,
543
- 0.0497145488949697964533349462026386416808,
544
- 0.0497145488949697964533349462026386416808,
545
- 0.0216160135264833103133427102664524693876,
546
- 0.0216160135264833103133427102664524693876,
547
- ],
548
- [
549
- 0.1610544498487836959791636253209167350399,
550
- 0.1589688433939543476499564394650472016787,
551
- 0.1589688433939543476499564394650472016787,
552
- 0.152766042065859666778855400897662998461,
553
- 0.152766042065859666778855400897662998461,
554
- 0.1426067021736066117757461094419029724756,
555
- 0.1426067021736066117757461094419029724756,
556
- 0.1287539625393362276755157848568771170558,
557
- 0.1287539625393362276755157848568771170558,
558
- 0.1115666455473339947160239016817659974813,
559
- 0.1115666455473339947160239016817659974813,
560
- 0.0914900216224499994644620941238396526609,
561
- 0.0914900216224499994644620941238396526609,
562
- 0.0690445427376412265807082580060130449618,
563
- 0.0690445427376412265807082580060130449618,
564
- 0.0448142267656996003328381574019942119517,
565
- 0.0448142267656996003328381574019942119517,
566
- 0.0194617882297264770363120414644384357529,
567
- 0.0194617882297264770363120414644384357529,
568
- ],
569
- [
570
- 0.1527533871307258506980843319550975934919,
571
- 0.1527533871307258506980843319550975934919,
572
- 0.1491729864726037467878287370019694366926,
573
- 0.1491729864726037467878287370019694366926,
574
- 0.1420961093183820513292983250671649330345,
575
- 0.1420961093183820513292983250671649330345,
576
- 0.1316886384491766268984944997481631349161,
577
- 0.1316886384491766268984944997481631349161,
578
- 0.118194531961518417312377377711382287005,
579
- 0.118194531961518417312377377711382287005,
580
- 0.1019301198172404350367501354803498761666,
581
- 0.1019301198172404350367501354803498761666,
582
- 0.0832767415767047487247581432220462061001,
583
- 0.0832767415767047487247581432220462061001,
584
- 0.0626720483341090635695065351870416063516,
585
- 0.0626720483341090635695065351870416063516,
586
- 0.040601429800386941331039952274932109879,
587
- 0.040601429800386941331039952274932109879,
588
- 0.0176140071391521183118619623518528163621,
589
- 0.0176140071391521183118619623518528163621,
590
- ],
591
- [
592
- 0.1460811336496904271919851476833711882448,
593
- 0.1445244039899700590638271665537525436099,
594
- 0.1445244039899700590638271665537525436099,
595
- 0.1398873947910731547221334238675831108927,
596
- 0.1398873947910731547221334238675831108927,
597
- 0.132268938633337461781052574496775604329,
598
- 0.132268938633337461781052574496775604329,
599
- 0.1218314160537285341953671771257335983563,
600
- 0.1218314160537285341953671771257335983563,
601
- 0.1087972991671483776634745780701056420336,
602
- 0.1087972991671483776634745780701056420336,
603
- 0.0934444234560338615532897411139320884835,
604
- 0.0934444234560338615532897411139320884835,
605
- 0.0761001136283793020170516533001831792261,
606
- 0.0761001136283793020170516533001831792261,
607
- 0.0571344254268572082836358264724479574912,
608
- 0.0571344254268572082836358264724479574912,
609
- 0.0369537897708524937999506682993296661889,
610
- 0.0369537897708524937999506682993296661889,
611
- 0.0160172282577743333242246168584710152658,
612
- 0.0160172282577743333242246168584710152658,
613
- ],
614
- [
615
- 0.1392518728556319933754102483418099578739,
616
- 0.1392518728556319933754102483418099578739,
617
- 0.1365414983460151713525738312315173965863,
618
- 0.1365414983460151713525738312315173965863,
619
- 0.1311735047870623707329649925303074458757,
620
- 0.1311735047870623707329649925303074458757,
621
- 0.1232523768105124242855609861548144719594,
622
- 0.1232523768105124242855609861548144719594,
623
- 0.1129322960805392183934006074217843191142,
624
- 0.1129322960805392183934006074217843191142,
625
- 0.1004141444428809649320788378305362823508,
626
- 0.1004141444428809649320788378305362823508,
627
- 0.0859416062170677274144436813727028661891,
628
- 0.0859416062170677274144436813727028661891,
629
- 0.0697964684245204880949614189302176573987,
630
- 0.0697964684245204880949614189302176573987,
631
- 0.0522933351526832859403120512732112561121,
632
- 0.0522933351526832859403120512732112561121,
633
- 0.0337749015848141547933022468659129013491,
634
- 0.0337749015848141547933022468659129013491,
635
- 0.0146279952982722006849910980471854451902,
636
- 0.0146279952982722006849910980471854451902,
637
- ],
638
- [
639
- 0.1336545721861061753514571105458443385831,
640
- 0.132462039404696617371642464703316925805,
641
- 0.132462039404696617371642464703316925805,
642
- 0.1289057221880821499785953393997936532597,
643
- 0.1289057221880821499785953393997936532597,
644
- 0.1230490843067295304675784006720096548158,
645
- 0.1230490843067295304675784006720096548158,
646
- 0.1149966402224113649416435129339613014914,
647
- 0.1149966402224113649416435129339613014914,
648
- 0.1048920914645414100740861850147438548584,
649
- 0.1048920914645414100740861850147438548584,
650
- 0.0929157660600351474770186173697646486034,
651
- 0.0929157660600351474770186173697646486034,
652
- 0.0792814117767189549228925247420432269137,
653
- 0.0792814117767189549228925247420432269137,
654
- 0.0642324214085258521271696151589109980391,
655
- 0.0642324214085258521271696151589109980391,
656
- 0.0480376717310846685716410716320339965612,
657
- 0.0480376717310846685716410716320339965612,
658
- 0.0309880058569794443106942196418845053837,
659
- 0.0309880058569794443106942196418845053837,
660
- 0.0134118594871417720813094934586150649766,
661
- 0.0134118594871417720813094934586150649766,
662
- ],
663
- [
664
- 0.1279381953467521569740561652246953718517,
665
- 0.1279381953467521569740561652246953718517,
666
- 0.1258374563468282961213753825111836887264,
667
- 0.1258374563468282961213753825111836887264,
668
- 0.121670472927803391204463153476262425607,
669
- 0.121670472927803391204463153476262425607,
670
- 0.1155056680537256013533444839067835598622,
671
- 0.1155056680537256013533444839067835598622,
672
- 0.1074442701159656347825773424466062227946,
673
- 0.1074442701159656347825773424466062227946,
674
- 0.0976186521041138882698806644642471544279,
675
- 0.0976186521041138882698806644642471544279,
676
- 0.086190161531953275917185202983742667185,
677
- 0.086190161531953275917185202983742667185,
678
- 0.0733464814110803057340336152531165181193,
679
- 0.0733464814110803057340336152531165181193,
680
- 0.0592985849154367807463677585001085845412,
681
- 0.0592985849154367807463677585001085845412,
682
- 0.0442774388174198061686027482113382288593,
683
- 0.0442774388174198061686027482113382288593,
684
- 0.0285313886289336631813078159518782864491,
685
- 0.0285313886289336631813078159518782864491,
686
- 0.0123412297999871995468056670700372915759,
687
- 0.0123412297999871995468056670700372915759,
688
- ],
689
- ];
690
-
691
- // LUT for binomial coefficient arrays per curve order 'n'
692
- export const binomialCoefficients = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]];
693
-
694
- export const getCubicArcLength = (xs: number[], ys: number[], t: number) => {
695
- let sum: number;
696
- let correctedT: number;
697
-
698
- /*if (xs.length >= tValues.length) {
699
- throw new Error('too high n bezier');
700
- }*/
701
-
702
- const n = 20;
703
-
704
- const z = t / 2;
705
- sum = 0;
706
- for (let i = 0; i < n; i++) {
707
- correctedT = z * tValues[n][i] + z;
708
- sum += cValues[n][i] * BFunc(xs, ys, correctedT);
709
- }
710
- return z * sum;
711
- };
712
-
713
- export const getQuadraticArcLength = (
714
- xs: number[],
715
- ys: number[],
716
- t: number
717
- ) => {
718
- if (t === undefined) {
719
- t = 1;
720
- }
721
- const ax = xs[0] - 2 * xs[1] + xs[2];
722
- const ay = ys[0] - 2 * ys[1] + ys[2];
723
- const bx = 2 * xs[1] - 2 * xs[0];
724
- const by = 2 * ys[1] - 2 * ys[0];
725
-
726
- const A = 4 * (ax * ax + ay * ay);
727
- const B = 4 * (ax * bx + ay * by);
728
- const C = bx * bx + by * by;
729
-
730
- if (A === 0) {
731
- return (
732
- t * Math.sqrt(Math.pow(xs[2] - xs[0], 2) + Math.pow(ys[2] - ys[0], 2))
733
- );
734
- }
735
- const b = B / (2 * A);
736
- const c = C / A;
737
- const u = t + b;
738
- const k = c - b * b;
739
-
740
- const uuk = u * u + k > 0 ? Math.sqrt(u * u + k) : 0;
741
- const bbk = b * b + k > 0 ? Math.sqrt(b * b + k) : 0;
742
- const term =
743
- b + Math.sqrt(b * b + k) !== 0
744
- ? k * Math.log(Math.abs((u + uuk) / (b + bbk)))
745
- : 0;
746
-
747
- return (Math.sqrt(A) / 2) * (u * uuk - b * bbk + term);
748
- };
749
-
750
- function BFunc(xs: number[], ys: number[], t: number) {
751
- const xbase = getDerivative(1, t, xs);
752
- const ybase = getDerivative(1, t, ys);
753
- const combined = xbase * xbase + ybase * ybase;
754
- return Math.sqrt(combined);
755
- }
756
-
757
- /**
758
- * Compute the curve derivative (hodograph) at t.
759
- */
760
- const getDerivative = (derivative: number, t: number, vs: number[]): number => {
761
- // the derivative of any 't'-less function is zero.
762
- const n = vs.length - 1;
763
- let _vs;
764
- let value;
765
-
766
- if (n === 0) {
767
- return 0;
768
- }
769
-
770
- // direct values? compute!
771
- if (derivative === 0) {
772
- value = 0;
773
- for (let k = 0; k <= n; k++) {
774
- value +=
775
- binomialCoefficients[n][k] *
776
- Math.pow(1 - t, n - k) *
777
- Math.pow(t, k) *
778
- vs[k];
779
- }
780
- return value;
781
- } else {
782
- // Still some derivative? go down one order, then try
783
- // for the lower order curve's.
784
- _vs = new Array(n);
785
- for (let k = 0; k < n; k++) {
786
- _vs[k] = n * (vs[k + 1] - vs[k]);
787
- }
788
- return getDerivative(derivative - 1, t, _vs);
789
- }
790
- };
791
-
792
- export const t2length = (
793
- length: number,
794
- totalLength: number,
795
- func: (t: number) => number
796
- ): number => {
797
- let error = 1;
798
- let t = length / totalLength;
799
- let step = (length - func(t)) / totalLength;
800
-
801
- let numIterations = 0;
802
- while (error > 0.001) {
803
- const increasedTLength = func(t + step);
804
- const increasedTError = Math.abs(length - increasedTLength) / totalLength;
805
- if (increasedTError < error) {
806
- error = increasedTError;
807
- t += step;
808
- } else {
809
- const decreasedTLength = func(t - step);
810
- const decreasedTError = Math.abs(length - decreasedTLength) / totalLength;
811
- if (decreasedTError < error) {
812
- error = decreasedTError;
813
- t -= step;
814
- } else {
815
- step /= 2;
816
- }
817
- }
818
-
819
- numIterations++;
820
- if (numIterations > 500) {
821
- break;
822
- }
823
- }
824
-
825
- return t;
826
- };