pimath 0.0.127 → 0.0.129

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 (212) hide show
  1. package/dist/main.d.ts +39 -0
  2. package/{esm → dist}/maths/algebra/equation.d.ts +11 -10
  3. package/{esm → dist}/maths/algebra/linearSystem.d.ts +5 -4
  4. package/{esm → dist}/maths/algebra/monom.d.ts +5 -4
  5. package/{esm → dist}/maths/algebra/polynom.d.ts +11 -13
  6. package/{esm → dist}/maths/algebra/rational.d.ts +7 -9
  7. package/dist/maths/algebra/study/rationalStudy.d.ts +14 -0
  8. package/{esm → dist}/maths/algebra/study.d.ts +4 -7
  9. package/{esm → dist}/maths/geometry/circle.d.ts +9 -8
  10. package/{esm → dist}/maths/geometry/line.d.ts +17 -14
  11. package/{esm → dist}/maths/geometry/point.d.ts +11 -9
  12. package/{esm → dist}/maths/geometry/triangle.d.ts +4 -3
  13. package/{esm → dist}/maths/geometry/vector.d.ts +7 -10
  14. package/{esm → dist}/maths/randomization/random.d.ts +10 -7
  15. package/{esm → dist}/maths/randomization/rndFraction.d.ts +4 -3
  16. package/dist/maths/randomization/rndGeometryCircle.d.ts +13 -0
  17. package/{esm → dist}/maths/randomization/rndGeometryLine.d.ts +4 -3
  18. package/{esm → dist}/maths/randomization/rndGeometryPoint.d.ts +4 -3
  19. package/{esm → dist}/maths/randomization/rndMonom.d.ts +5 -4
  20. package/{esm → dist}/maths/randomization/rndPolynom.d.ts +5 -4
  21. package/{esm → dist}/maths/randomization/rndTypes.d.ts +7 -1
  22. package/dist/pimath.js +4239 -7819
  23. package/package.json +13 -7
  24. package/.eslintrc.js +0 -24
  25. package/.idea/$CACHE_FILE$ +0 -6
  26. package/.idea/PI.iml +0 -14
  27. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  28. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  29. package/.idea/misc.xml +0 -6
  30. package/.idea/modules.xml +0 -8
  31. package/.idea/php.xml +0 -19
  32. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]/shelved.patch +0 -192
  33. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]1/shelved.patch +0 -0
  34. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30__Default_Changelist_.xml +0 -4
  35. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43_[Default_Changelist]/shelved.patch +0 -2404
  36. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43__Default_Changelist_.xml +0 -4
  37. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]/shelved.patch +0 -1362
  38. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01__Default_Changelist_.xml +0 -4
  39. package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31_[Default_Changelist]/shelved.patch +0 -90
  40. package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31__Default_Changelist_.xml +0 -4
  41. package/.idea/vcs.xml +0 -6
  42. package/dev/pimath.js +0 -7945
  43. package/dev/pimath.js.map +0 -1
  44. package/dist/pimath.js.map +0 -1
  45. package/dist/pimath.min.js +0 -2
  46. package/dist/pimath.min.js.map +0 -1
  47. package/docs/.nojekyll +0 -1
  48. package/docs/assets/highlight.css +0 -78
  49. package/docs/assets/main.js +0 -59
  50. package/docs/assets/navigation.js +0 -1
  51. package/docs/assets/search.js +0 -1
  52. package/docs/assets/style.css +0 -1383
  53. package/docs/classes/Logicalset.Logicalset.html +0 -217
  54. package/docs/classes/Polynom.Rational.html +0 -397
  55. package/docs/classes/Vector-1.Vector.html +0 -490
  56. package/docs/classes/Vector.Point.html +0 -337
  57. package/docs/classes/algebra_equation.Equation.html +0 -790
  58. package/docs/classes/algebra_linearSystem.LinearSystem.html +0 -404
  59. package/docs/classes/algebra_monom.Monom.html +0 -962
  60. package/docs/classes/algebra_polynom.Polynom.html +0 -1275
  61. package/docs/classes/coefficients_fraction.Fraction.html +0 -934
  62. package/docs/classes/geometry_circle.Circle.html +0 -472
  63. package/docs/classes/geometry_line.Line.html +0 -774
  64. package/docs/classes/geometry_triangle.Triangle.html +0 -429
  65. package/docs/classes/numeric.Numeric.html +0 -265
  66. package/docs/classes/shutingyard.Shutingyard.html +0 -250
  67. package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +0 -83
  68. package/docs/enums/geometry_line.LinePropriety.html +0 -97
  69. package/docs/enums/shutingyard.ShutingyardMode.html +0 -97
  70. package/docs/enums/shutingyard.ShutingyardType.html +0 -111
  71. package/docs/index.html +0 -63
  72. package/docs/interfaces/algebra_equation.ISolution.html +0 -105
  73. package/docs/interfaces/algebra_polynom.IEuclidian.html +0 -87
  74. package/docs/interfaces/geometry_triangle.remarquableLines.html +0 -163
  75. package/docs/modules/Logicalset.html +0 -65
  76. package/docs/modules/Polynom.html +0 -65
  77. package/docs/modules/Vector-1.html +0 -65
  78. package/docs/modules/Vector.html +0 -65
  79. package/docs/modules/algebra_equation.html +0 -69
  80. package/docs/modules/algebra_linearSystem.html +0 -61
  81. package/docs/modules/algebra_monom.html +0 -65
  82. package/docs/modules/algebra_polynom.html +0 -69
  83. package/docs/modules/coefficients_fraction.html +0 -65
  84. package/docs/modules/geometry_circle.html +0 -61
  85. package/docs/modules/geometry_line.html +0 -65
  86. package/docs/modules/geometry_triangle.html +0 -65
  87. package/docs/modules/numeric.html +0 -61
  88. package/docs/modules/shutingyard.html +0 -75
  89. package/docs/types/algebra_monom.literalType.html +0 -61
  90. package/docs/types/algebra_polynom.PolynomParsingType.html +0 -56
  91. package/docs/types/coefficients_fraction.FractionParsingType.html +0 -56
  92. package/docs/types/shutingyard.Token.html +0 -63
  93. package/docs/types/shutingyard.tokenType.html +0 -68
  94. package/docs/variables/shutingyard.tokenConstant.html +0 -61
  95. package/esm/index.d.ts +0 -38
  96. package/esm/index.js +0 -44
  97. package/esm/index.js.map +0 -1
  98. package/esm/maths/algebra/equation.js +0 -797
  99. package/esm/maths/algebra/equation.js.map +0 -1
  100. package/esm/maths/algebra/linearSystem.js +0 -279
  101. package/esm/maths/algebra/linearSystem.js.map +0 -1
  102. package/esm/maths/algebra/logicalset.js +0 -158
  103. package/esm/maths/algebra/logicalset.js.map +0 -1
  104. package/esm/maths/algebra/monom.js +0 -909
  105. package/esm/maths/algebra/monom.js.map +0 -1
  106. package/esm/maths/algebra/polynom.js +0 -1305
  107. package/esm/maths/algebra/polynom.js.map +0 -1
  108. package/esm/maths/algebra/rational.js +0 -195
  109. package/esm/maths/algebra/rational.js.map +0 -1
  110. package/esm/maths/algebra/study/rationalStudy.d.ts +0 -28
  111. package/esm/maths/algebra/study/rationalStudy.js +0 -244
  112. package/esm/maths/algebra/study/rationalStudy.js.map +0 -1
  113. package/esm/maths/algebra/study.js +0 -380
  114. package/esm/maths/algebra/study.js.map +0 -1
  115. package/esm/maths/coefficients/fraction.js +0 -517
  116. package/esm/maths/coefficients/fraction.js.map +0 -1
  117. package/esm/maths/coefficients/nthRoot.js +0 -137
  118. package/esm/maths/coefficients/nthRoot.js.map +0 -1
  119. package/esm/maths/geometry/circle.js +0 -324
  120. package/esm/maths/geometry/circle.js.map +0 -1
  121. package/esm/maths/geometry/line.js +0 -485
  122. package/esm/maths/geometry/line.js.map +0 -1
  123. package/esm/maths/geometry/point.js +0 -167
  124. package/esm/maths/geometry/point.js.map +0 -1
  125. package/esm/maths/geometry/triangle.js +0 -276
  126. package/esm/maths/geometry/triangle.js.map +0 -1
  127. package/esm/maths/geometry/vector.js +0 -198
  128. package/esm/maths/geometry/vector.js.map +0 -1
  129. package/esm/maths/numeric.js +0 -136
  130. package/esm/maths/numeric.js.map +0 -1
  131. package/esm/maths/numexp.js +0 -186
  132. package/esm/maths/numexp.js.map +0 -1
  133. package/esm/maths/randomization/random.js +0 -79
  134. package/esm/maths/randomization/random.js.map +0 -1
  135. package/esm/maths/randomization/randomCore.js +0 -22
  136. package/esm/maths/randomization/randomCore.js.map +0 -1
  137. package/esm/maths/randomization/rndFraction.js +0 -44
  138. package/esm/maths/randomization/rndFraction.js.map +0 -1
  139. package/esm/maths/randomization/rndGeometryLine.js +0 -46
  140. package/esm/maths/randomization/rndGeometryLine.js.map +0 -1
  141. package/esm/maths/randomization/rndGeometryPoint.js +0 -61
  142. package/esm/maths/randomization/rndGeometryPoint.js.map +0 -1
  143. package/esm/maths/randomization/rndHelpers.js +0 -98
  144. package/esm/maths/randomization/rndHelpers.js.map +0 -1
  145. package/esm/maths/randomization/rndMonom.js +0 -53
  146. package/esm/maths/randomization/rndMonom.js.map +0 -1
  147. package/esm/maths/randomization/rndPolynom.js +0 -75
  148. package/esm/maths/randomization/rndPolynom.js.map +0 -1
  149. package/esm/maths/randomization/rndTypes.js +0 -3
  150. package/esm/maths/randomization/rndTypes.js.map +0 -1
  151. package/esm/maths/shutingyard.js +0 -443
  152. package/esm/maths/shutingyard.js.map +0 -1
  153. package/public/demo.css +0 -3
  154. package/public/index.html +0 -283
  155. package/public/matrices.html +0 -100
  156. package/public/playground.html +0 -168
  157. package/src/index.ts +0 -42
  158. package/src/maths/algebra/equation.ts +0 -897
  159. package/src/maths/algebra/linearSystem.ts +0 -370
  160. package/src/maths/algebra/logicalset.ts +0 -183
  161. package/src/maths/algebra/monom.ts +0 -1028
  162. package/src/maths/algebra/polynom.ts +0 -1537
  163. package/src/maths/algebra/rational.ts +0 -240
  164. package/src/maths/algebra/study/rationalStudy.ts +0 -287
  165. package/src/maths/algebra/study.ts +0 -506
  166. package/src/maths/coefficients/fraction.ts +0 -593
  167. package/src/maths/coefficients/nthRoot.ts +0 -148
  168. package/src/maths/geometry/circle.ts +0 -382
  169. package/src/maths/geometry/line.ts +0 -604
  170. package/src/maths/geometry/point.ts +0 -215
  171. package/src/maths/geometry/triangle.ts +0 -368
  172. package/src/maths/geometry/vector.ts +0 -242
  173. package/src/maths/numeric.ts +0 -162
  174. package/src/maths/numexp.ts +0 -184
  175. package/src/maths/randomization/random.ts +0 -80
  176. package/src/maths/randomization/randomCore.ts +0 -19
  177. package/src/maths/randomization/rndFraction.ts +0 -47
  178. package/src/maths/randomization/rndGeometryCircle.ts +0 -50
  179. package/src/maths/randomization/rndGeometryLine.ts +0 -53
  180. package/src/maths/randomization/rndGeometryPoint.ts +0 -69
  181. package/src/maths/randomization/rndHelpers.ts +0 -107
  182. package/src/maths/randomization/rndMonom.ts +0 -57
  183. package/src/maths/randomization/rndPolynom.ts +0 -90
  184. package/src/maths/randomization/rndTypes.ts +0 -43
  185. package/src/maths/shutingyard.ts +0 -496
  186. package/tests/algebra/equation.test.ts +0 -64
  187. package/tests/algebra/linear.test.ts +0 -58
  188. package/tests/algebra/monom.test.ts +0 -78
  189. package/tests/algebra/polynom.test.ts +0 -343
  190. package/tests/algebra/rationnal.test.ts +0 -64
  191. package/tests/algebra/study.test.ts +0 -48
  192. package/tests/coefficients/fraction.test.ts +0 -131
  193. package/tests/custom.test.ts +0 -33
  194. package/tests/geometry/circle.test.ts +0 -404
  195. package/tests/geometry/line.test.ts +0 -36
  196. package/tests/numeric.test.ts +0 -43
  197. package/tests/numexp.test.ts +0 -89
  198. package/tests/shutingyard.test.ts +0 -58
  199. package/tsconfig.json +0 -41
  200. package/tsconfig.testing.json +0 -28
  201. package/typedoc.katex.js +0 -11
  202. package/webpack-production-min.config.js +0 -26
  203. package/webpack-production.config.js +0 -26
  204. package/webpack.config.js +0 -26
  205. package/{esm → dist}/maths/algebra/logicalset.d.ts +6 -6
  206. package/{esm → dist}/maths/coefficients/fraction.d.ts +0 -0
  207. package/{esm → dist}/maths/coefficients/nthRoot.d.ts +0 -0
  208. package/{esm → dist}/maths/numeric.d.ts +0 -0
  209. package/{esm → dist}/maths/numexp.d.ts +3 -3
  210. /package/{esm → dist}/maths/randomization/randomCore.d.ts +0 -0
  211. /package/{esm → dist}/maths/randomization/rndHelpers.d.ts +0 -0
  212. /package/{esm → dist}/maths/shutingyard.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"point.js","sourceRoot":"","sources":["../../../src/maths/geometry/point.ts"],"names":[],"mappings":"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"}
@@ -1,276 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Triangle = void 0;
4
- const point_1 = require("./point");
5
- const fraction_1 = require("../coefficients/fraction");
6
- const vector_1 = require("./vector");
7
- const line_1 = require("./line");
8
- const equation_1 = require("../algebra/equation");
9
- class Triangle {
10
- constructor(...values) {
11
- // ------------------------------------------
12
- // Creation / parsing functions
13
- // ------------------------------------------
14
- /**
15
- * Parse values to a triangle. Supported formats:
16
- * Point, Point, Point
17
- * x1, y1, x2, y2, x3, y3
18
- * TODO: Something else ?
19
- * @param values
20
- */
21
- this.parse = (...values) => {
22
- if (values.length === 6) {
23
- // Check if all values are number or fractions.
24
- let v = values.map((x) => new fraction_1.Fraction(x));
25
- return this.parse(new point_1.Point(v[0], v[1]), new point_1.Point(v[2], v[3]), new point_1.Point(v[4], v[5]));
26
- }
27
- else if (values.length === 3) {
28
- // Possibilities:
29
- // - Three points (or part of points, only dict for example, or array (TODO: Add the array syntax for point)
30
- // - Three lines
31
- // - Three lines as text.
32
- if (values.filter((x) => typeof x === 'string').length === 3) {
33
- return this.parse(...values.map((x) => new line_1.Line(x)));
34
- }
35
- else if (values.filter((x) => x instanceof line_1.Line).length === 3) {
36
- // We have three lines
37
- this._lines = {
38
- 'AB': values[0],
39
- 'BC': values[1],
40
- 'AC': values[2]
41
- };
42
- // Get the intersection points -> build the triangle using these intersection points.
43
- let intersect = values[0].intersection(values[1]);
44
- if (intersect.hasIntersection) {
45
- this._B = intersect.point.clone();
46
- }
47
- else {
48
- return this;
49
- }
50
- intersect = values[1].intersection(values[2]);
51
- if (intersect.hasIntersection) {
52
- this._C = intersect.point.clone();
53
- }
54
- else {
55
- return this;
56
- }
57
- intersect = values[2].intersection(values[0]);
58
- if (intersect.hasIntersection) {
59
- this._A = intersect.point.clone();
60
- }
61
- else {
62
- return this;
63
- }
64
- }
65
- else {
66
- // At least, one of the value is not a point.
67
- if (values.filter((x) => (x instanceof point_1.Point)).length < 3) {
68
- return this.parse(new point_1.Point(values[0]), new point_1.Point(values[1]), new point_1.Point(values[2]));
69
- }
70
- // We have three points.
71
- this._A = values[0].clone();
72
- this._B = values[1].clone();
73
- this._C = values[2].clone();
74
- this._lines = {
75
- 'AB': new line_1.Line(this._A, this._B),
76
- 'BC': new line_1.Line(this._B, this._C),
77
- 'AC': new line_1.Line(this._A, this._C)
78
- };
79
- }
80
- }
81
- else if (values.length === 1) {
82
- if (values[0] instanceof Triangle) {
83
- return values[0].clone();
84
- }
85
- }
86
- this._updateTriangle();
87
- return this;
88
- };
89
- /**
90
- * Clone the Triangle class
91
- */
92
- this.clone = () => {
93
- this._A = this._A.clone();
94
- this._B = this._B.clone();
95
- this._C = this._C.clone();
96
- this._lines = {
97
- 'AB': this._lines.AB.clone(),
98
- 'BC': this._lines.BC.clone(),
99
- 'AC': this._lines.AC.clone()
100
- };
101
- this._updateTriangle();
102
- return this;
103
- };
104
- // ------------------------------------------
105
- // Triangle operations and properties
106
- // ------------------------------------------
107
- /**
108
- * Generate the Line object for the three segments of the triangle
109
- */
110
- this._updateTriangle = () => {
111
- this._middles = {
112
- 'AB': new point_1.Point().middleOf(this._A, this._B),
113
- 'AC': new point_1.Point().middleOf(this._A, this._C),
114
- 'BC': new point_1.Point().middleOf(this._B, this._C)
115
- };
116
- this._remarquables = this._calculateRemarquableLines();
117
- };
118
- /**
119
- * Get the Point class for the given name
120
- * @param ptName
121
- */
122
- this.getPointByName = (ptName) => {
123
- switch (ptName.toUpperCase()) {
124
- case 'A':
125
- return this._A;
126
- case 'B':
127
- return this._B;
128
- case 'C':
129
- return this._C;
130
- }
131
- // Something went wrong ! Return the first point
132
- return this._A;
133
- };
134
- /**
135
- * Get the vector for the segment given by name.
136
- * @param ptName1
137
- * @param ptName2
138
- */
139
- this.getSegment = (ptName1, ptName2) => {
140
- return new vector_1.Vector(this.getPointByName(ptName1), this.getPointByName(ptName2));
141
- };
142
- this._calculateRemarquableLines = () => {
143
- const bA = this._calculateBisectors('A'), bB = this._calculateBisectors('B'), bC = this._calculateBisectors('C');
144
- let remarquables = {
145
- 'medians': {
146
- 'A': new line_1.Line(this._A, this._middles.BC),
147
- 'B': new line_1.Line(this._B, this._middles.AC),
148
- 'C': new line_1.Line(this._C, this._middles.AB),
149
- 'intersection': null
150
- },
151
- 'mediators': {
152
- 'AB': new line_1.Line(this._middles.AB, new vector_1.Vector(this._A, this._B).normal()),
153
- 'AC': new line_1.Line(this._middles.AC, new vector_1.Vector(this._A, this._C).normal()),
154
- 'BC': new line_1.Line(this._middles.BC, new vector_1.Vector(this._B, this._C).normal()),
155
- 'intersection': null
156
- },
157
- 'heights': {
158
- 'A': new line_1.Line(this._A, new vector_1.Vector(this._B, this._C).normal()),
159
- 'B': new line_1.Line(this._B, new vector_1.Vector(this._A, this._C).normal()),
160
- 'C': new line_1.Line(this._C, new vector_1.Vector(this._A, this._B).normal()),
161
- 'intersection': null
162
- },
163
- 'bisectors': {
164
- 'A': bA.internal,
165
- 'B': bB.internal,
166
- 'C': bB.internal,
167
- 'intersection': null
168
- },
169
- externalBisectors: {
170
- 'A': bA.external,
171
- 'B': bB.external,
172
- 'C': bC.external,
173
- 'intersection': null
174
- }
175
- };
176
- // As it's a triangle, we assume the lines are intersecting and aren't parallel or superposed.
177
- remarquables.medians.intersection = remarquables.medians.A.intersection(remarquables.medians.B).point;
178
- remarquables.mediators.intersection = remarquables.mediators.AB.intersection(remarquables.mediators.BC).point;
179
- remarquables.heights.intersection = remarquables.heights.A.intersection(remarquables.heights.B).point;
180
- remarquables.bisectors.intersection = remarquables.bisectors.A.intersection(remarquables.bisectors.B).point;
181
- // Everything was calculated for the remarquable lines.
182
- return remarquables;
183
- };
184
- this._calculateBisectors = (pt) => {
185
- let tlines = this.lines, d1, d2;
186
- if (pt === 'A') {
187
- d1 = tlines.AB;
188
- d2 = tlines.AC;
189
- }
190
- else if (pt === 'B') {
191
- d1 = tlines.AB;
192
- d2 = tlines.BC;
193
- }
194
- else if (pt === 'C') {
195
- d1 = tlines.BC;
196
- d2 = tlines.AC;
197
- }
198
- let b1 = new line_1.Line(new equation_1.Equation(d1.equation.left.clone().multiply(d2.n.simplify().norm), d2.equation.left.clone().multiply(d1.n.simplify().norm)).reorder(true).simplify()), b2 = new line_1.Line(new equation_1.Equation(d1.equation.left.clone().multiply(d2.n.simplify().norm), d2.equation.left.clone().multiply(d1.n.simplify().norm).opposed()).reorder(true).simplify());
199
- // Must determine which bisectors is in the triangle
200
- if (pt === 'A') {
201
- return b1.hitSegment(this.B, this.C) ? { internal: b1, external: b2 } : { internal: b2, external: b1 };
202
- }
203
- if (pt === 'B') {
204
- return b1.hitSegment(this.A, this.C) ? { internal: b1, external: b2 } : { internal: b2, external: b1 };
205
- }
206
- if (pt === 'C') {
207
- return b1.hitSegment(this.B, this.A) ? { internal: b1, external: b2 } : { internal: b2, external: b1 };
208
- }
209
- // Default returns the first bisector
210
- return { internal: b1, external: b2 };
211
- };
212
- if (values.length > 0) {
213
- this.parse(...values);
214
- }
215
- return this;
216
- }
217
- // ------------------------------------------
218
- // Getter and setters
219
- // ------------------------------------------
220
- get A() {
221
- return this._A;
222
- }
223
- get B() {
224
- return this._B;
225
- }
226
- get C() {
227
- return this._C;
228
- }
229
- get AB() {
230
- return this.getSegment('A', 'B');
231
- }
232
- get BA() {
233
- return this.getSegment('B', 'A');
234
- }
235
- get BC() {
236
- return this.getSegment('B', 'C');
237
- }
238
- get CB() {
239
- return this.getSegment('C', 'B');
240
- }
241
- get AC() {
242
- return this.getSegment('A', 'C');
243
- }
244
- get CA() {
245
- return this.getSegment('C', 'A');
246
- }
247
- get isRectangle() {
248
- if (this.AB.isNormalTo(this.BC)) {
249
- return true;
250
- }
251
- if (this.AB.isNormalTo(this.AC)) {
252
- return true;
253
- }
254
- if (this.BC.isNormalTo(this.AC)) {
255
- return true;
256
- }
257
- return false;
258
- }
259
- get isEquilateral() {
260
- return this.AB.normSquare.isEqual(this.BC.normSquare) &&
261
- this.AB.normSquare.isEqual(this.AC.normSquare);
262
- }
263
- get isIsocele() {
264
- return this.AB.normSquare.isEqual(this.BC.normSquare) ||
265
- this.AB.normSquare.isEqual(this.AC.normSquare) ||
266
- this.BC.normSquare.isEqual(this.AC.normSquare);
267
- }
268
- get lines() {
269
- return this._lines;
270
- }
271
- get remarquables() {
272
- return this._remarquables;
273
- }
274
- }
275
- exports.Triangle = Triangle;
276
- //# sourceMappingURL=triangle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"triangle.js","sourceRoot":"","sources":["../../../src/maths/geometry/triangle.ts"],"names":[],"mappings":"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"}
@@ -1,198 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Vector = void 0;
4
- /**
5
- * Vector module contains everything necessary to handle 2d or 3d vectors.
6
- * @module Vector
7
- */
8
- const fraction_1 = require("../coefficients/fraction");
9
- const numeric_1 = require("../numeric");
10
- const point_1 = require("./point");
11
- class Vector {
12
- constructor(...values) {
13
- // ------------------------------------------
14
- // Creation / parsing functions
15
- // ------------------------------------------
16
- this.parse = (...values) => {
17
- // TODO: Must be more strict about what is given and limit to two dimensional vectors.p
18
- // Maybe more than one value was given...
19
- // Initialize the vector
20
- this.zero();
21
- if (values.length === 0) {
22
- return this;
23
- }
24
- if (values.length === 1) {
25
- if (values[0] instanceof Vector) {
26
- return values[0].clone();
27
- }
28
- else {
29
- return this._parseString(values[0]);
30
- }
31
- }
32
- if (values.length >= 2) {
33
- // Two points are given - skip the third value.
34
- if (values[0] instanceof point_1.Point && values[1] instanceof point_1.Point) {
35
- this._x = values[1].x.clone().subtract(values[0].x);
36
- this._y = values[1].y.clone().subtract(values[0].y);
37
- return this;
38
- }
39
- // Fractions or a number are give
40
- if (values[0] instanceof fraction_1.Fraction || !isNaN(values[0])) {
41
- this._x = new fraction_1.Fraction(values[0]);
42
- }
43
- if (values[1] instanceof fraction_1.Fraction || !isNaN(values[1])) {
44
- this._y = new fraction_1.Fraction(values[1]);
45
- }
46
- if ((typeof values[0] === 'object' && !isNaN(values[0].x) && !isNaN(values[0].x)) &&
47
- (typeof values[1] === 'object' && !isNaN(values[1].x) && !isNaN(values[1].x))) {
48
- this._x = new fraction_1.Fraction(+values[1].x - values[0].x);
49
- this._y = new fraction_1.Fraction(+values[1].y - values[0].y);
50
- }
51
- }
52
- return this;
53
- };
54
- this.clone = () => {
55
- let V = new Vector();
56
- if (this._x !== null) {
57
- V.x = this._x.clone();
58
- }
59
- if (this._y !== null) {
60
- V.y = this._y.clone();
61
- }
62
- return V;
63
- };
64
- this.reset = () => {
65
- this._x = null;
66
- this._y = null;
67
- return this;
68
- };
69
- this.zero = () => {
70
- this.reset();
71
- this._x = new fraction_1.Fraction(null);
72
- this._y = new fraction_1.Fraction(null);
73
- return this;
74
- };
75
- this.one = () => {
76
- this._x = new fraction_1.Fraction();
77
- this._y = new fraction_1.Fraction();
78
- return this;
79
- };
80
- this._parseString = (value) => {
81
- // Split comma, semi colon or single space.
82
- let components = value.split(/[,;\s]/g);
83
- // Validate the fraction values.
84
- this.x = new fraction_1.Fraction(components[0] || null);
85
- this.y = new fraction_1.Fraction(components[1] || null);
86
- return this;
87
- };
88
- // ------------------------------------------
89
- // Mathematical operations
90
- // ------------------------------------------
91
- this.opposed = () => {
92
- this._x.opposed();
93
- this._y.opposed();
94
- return this;
95
- };
96
- this.add = (V) => {
97
- this._x.add(V.x);
98
- this._y.add(V.y);
99
- return this;
100
- };
101
- this.subtract = (V) => {
102
- return this.add(V.clone().opposed());
103
- };
104
- this.scalarProductWithVector = (V) => {
105
- return Vector.scalarProduct(this, V);
106
- // return this._x.clone().multiply(V.x).add(this._y.clone().multiply(V.y));
107
- };
108
- this.determinantWithVector = (V) => {
109
- return Vector.determinant(this, V);
110
- };
111
- this.normal = () => {
112
- let x = this.x.clone().opposed(), y = this.y.clone();
113
- this._x = y;
114
- this._y = x;
115
- return this;
116
- };
117
- this.isColinearTo = (v) => {
118
- return this.determinantWithVector(v).isZero();
119
- };
120
- this.isNormalTo = (v) => {
121
- return this.scalarProductWithVector(v).isZero();
122
- };
123
- this.multiplyByScalar = (k) => {
124
- let scalar = new fraction_1.Fraction(k);
125
- this._x.multiply(scalar);
126
- this._y.multiply(scalar);
127
- return this;
128
- };
129
- this.divideByScalar = (k) => {
130
- return this.multiplyByScalar(new fraction_1.Fraction(k).invert());
131
- };
132
- // ------------------------------------------
133
- // Vector functions
134
- // ------------------------------------------
135
- this.simplify = () => {
136
- // Multiply by the lcm of denominators.
137
- return this.multiplyByScalar(numeric_1.Numeric.lcm(this._x.denominator, this._y.denominator))
138
- .divideByScalar(numeric_1.Numeric.gcd(this._x.numerator, this._y.numerator));
139
- };
140
- this.simplifyDirection = () => {
141
- let lcm = numeric_1.Numeric.lcm(this.x.denominator, this.y.denominator), gcd = numeric_1.Numeric.gcd(this.x.numerator, this.y.numerator);
142
- this.x.multiply(lcm).divide(gcd);
143
- this.y.multiply(lcm).divide(gcd);
144
- return this;
145
- };
146
- this.angleWith = (V, sharp, radian) => {
147
- let scalar = this.scalarProductWithVector(V).value, toDegree = radian ? 1 : 180 / Math.PI;
148
- if (sharp) {
149
- scalar = Math.abs(scalar);
150
- }
151
- return toDegree * Math.acos(scalar / (this.norm * V.norm));
152
- };
153
- this._x = new fraction_1.Fraction().zero();
154
- this._y = new fraction_1.Fraction().zero();
155
- if (values !== undefined) {
156
- this.parse(...values);
157
- }
158
- }
159
- ;
160
- // ------------------------------------------
161
- // Getter and setter
162
- // ------------------------------------------
163
- get x() {
164
- return this._x;
165
- }
166
- set x(value) {
167
- this._x = new fraction_1.Fraction(value);
168
- }
169
- get y() {
170
- return this._y;
171
- }
172
- set y(value) {
173
- this._y = new fraction_1.Fraction(value);
174
- }
175
- get normSquare() {
176
- return this._x.clone().pow(2).add(this._y.clone().pow(2));
177
- }
178
- get norm() {
179
- return Math.sqrt(this.normSquare.value);
180
- }
181
- get tex() {
182
- return `\\begin{pmatrix}${this._x.tex} \\\\\ ${this._y.tex} \\end{pmatrix}`;
183
- }
184
- get asPoint() {
185
- return new point_1.Point(this.x, this.y);
186
- }
187
- get isNull() {
188
- return this.x.isZero() && this.y.isZero();
189
- }
190
- }
191
- exports.Vector = Vector;
192
- Vector.scalarProduct = (v1, v2) => {
193
- return v1.x.clone().multiply(v2.x).add(v1.y.clone().multiply(v2.y));
194
- };
195
- Vector.determinant = (v1, v2) => {
196
- return v1.x.clone().multiply(v2.y).subtract(v1.y.clone().multiply(v2.x));
197
- };
198
- //# sourceMappingURL=vector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/maths/geometry/vector.ts"],"names":[],"mappings":"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"}