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.
- package/dist/main.d.ts +39 -0
- package/{esm → dist}/maths/algebra/equation.d.ts +11 -10
- package/{esm → dist}/maths/algebra/linearSystem.d.ts +5 -4
- package/{esm → dist}/maths/algebra/monom.d.ts +5 -4
- package/{esm → dist}/maths/algebra/polynom.d.ts +11 -13
- package/{esm → dist}/maths/algebra/rational.d.ts +7 -9
- package/dist/maths/algebra/study/rationalStudy.d.ts +14 -0
- package/{esm → dist}/maths/algebra/study.d.ts +4 -7
- package/{esm → dist}/maths/geometry/circle.d.ts +9 -8
- package/{esm → dist}/maths/geometry/line.d.ts +17 -14
- package/{esm → dist}/maths/geometry/point.d.ts +11 -9
- package/{esm → dist}/maths/geometry/triangle.d.ts +4 -3
- package/{esm → dist}/maths/geometry/vector.d.ts +7 -10
- package/{esm → dist}/maths/randomization/random.d.ts +10 -7
- package/{esm → dist}/maths/randomization/rndFraction.d.ts +4 -3
- package/dist/maths/randomization/rndGeometryCircle.d.ts +13 -0
- package/{esm → dist}/maths/randomization/rndGeometryLine.d.ts +4 -3
- package/{esm → dist}/maths/randomization/rndGeometryPoint.d.ts +4 -3
- package/{esm → dist}/maths/randomization/rndMonom.d.ts +5 -4
- package/{esm → dist}/maths/randomization/rndPolynom.d.ts +5 -4
- package/{esm → dist}/maths/randomization/rndTypes.d.ts +7 -1
- package/dist/pimath.js +4239 -7819
- package/package.json +13 -7
- package/.eslintrc.js +0 -24
- package/.idea/$CACHE_FILE$ +0 -6
- package/.idea/PI.iml +0 -14
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/php.xml +0 -19
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]/shelved.patch +0 -192
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]1/shelved.patch +0 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30__Default_Changelist_.xml +0 -4
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43_[Default_Changelist]/shelved.patch +0 -2404
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43__Default_Changelist_.xml +0 -4
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]/shelved.patch +0 -1362
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01__Default_Changelist_.xml +0 -4
- package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31_[Default_Changelist]/shelved.patch +0 -90
- package/.idea/shelf/Uncommitted_changes_before_Update_at_24_07_2023_15_31__Default_Changelist_.xml +0 -4
- package/.idea/vcs.xml +0 -6
- package/dev/pimath.js +0 -7945
- package/dev/pimath.js.map +0 -1
- package/dist/pimath.js.map +0 -1
- package/dist/pimath.min.js +0 -2
- package/dist/pimath.min.js.map +0 -1
- package/docs/.nojekyll +0 -1
- package/docs/assets/highlight.css +0 -78
- package/docs/assets/main.js +0 -59
- package/docs/assets/navigation.js +0 -1
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1383
- package/docs/classes/Logicalset.Logicalset.html +0 -217
- package/docs/classes/Polynom.Rational.html +0 -397
- package/docs/classes/Vector-1.Vector.html +0 -490
- package/docs/classes/Vector.Point.html +0 -337
- package/docs/classes/algebra_equation.Equation.html +0 -790
- package/docs/classes/algebra_linearSystem.LinearSystem.html +0 -404
- package/docs/classes/algebra_monom.Monom.html +0 -962
- package/docs/classes/algebra_polynom.Polynom.html +0 -1275
- package/docs/classes/coefficients_fraction.Fraction.html +0 -934
- package/docs/classes/geometry_circle.Circle.html +0 -472
- package/docs/classes/geometry_line.Line.html +0 -774
- package/docs/classes/geometry_triangle.Triangle.html +0 -429
- package/docs/classes/numeric.Numeric.html +0 -265
- package/docs/classes/shutingyard.Shutingyard.html +0 -250
- package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +0 -83
- package/docs/enums/geometry_line.LinePropriety.html +0 -97
- package/docs/enums/shutingyard.ShutingyardMode.html +0 -97
- package/docs/enums/shutingyard.ShutingyardType.html +0 -111
- package/docs/index.html +0 -63
- package/docs/interfaces/algebra_equation.ISolution.html +0 -105
- package/docs/interfaces/algebra_polynom.IEuclidian.html +0 -87
- package/docs/interfaces/geometry_triangle.remarquableLines.html +0 -163
- package/docs/modules/Logicalset.html +0 -65
- package/docs/modules/Polynom.html +0 -65
- package/docs/modules/Vector-1.html +0 -65
- package/docs/modules/Vector.html +0 -65
- package/docs/modules/algebra_equation.html +0 -69
- package/docs/modules/algebra_linearSystem.html +0 -61
- package/docs/modules/algebra_monom.html +0 -65
- package/docs/modules/algebra_polynom.html +0 -69
- package/docs/modules/coefficients_fraction.html +0 -65
- package/docs/modules/geometry_circle.html +0 -61
- package/docs/modules/geometry_line.html +0 -65
- package/docs/modules/geometry_triangle.html +0 -65
- package/docs/modules/numeric.html +0 -61
- package/docs/modules/shutingyard.html +0 -75
- package/docs/types/algebra_monom.literalType.html +0 -61
- package/docs/types/algebra_polynom.PolynomParsingType.html +0 -56
- package/docs/types/coefficients_fraction.FractionParsingType.html +0 -56
- package/docs/types/shutingyard.Token.html +0 -63
- package/docs/types/shutingyard.tokenType.html +0 -68
- package/docs/variables/shutingyard.tokenConstant.html +0 -61
- package/esm/index.d.ts +0 -38
- package/esm/index.js +0 -44
- package/esm/index.js.map +0 -1
- package/esm/maths/algebra/equation.js +0 -797
- package/esm/maths/algebra/equation.js.map +0 -1
- package/esm/maths/algebra/linearSystem.js +0 -279
- package/esm/maths/algebra/linearSystem.js.map +0 -1
- package/esm/maths/algebra/logicalset.js +0 -158
- package/esm/maths/algebra/logicalset.js.map +0 -1
- package/esm/maths/algebra/monom.js +0 -909
- package/esm/maths/algebra/monom.js.map +0 -1
- package/esm/maths/algebra/polynom.js +0 -1305
- package/esm/maths/algebra/polynom.js.map +0 -1
- package/esm/maths/algebra/rational.js +0 -195
- package/esm/maths/algebra/rational.js.map +0 -1
- package/esm/maths/algebra/study/rationalStudy.d.ts +0 -28
- package/esm/maths/algebra/study/rationalStudy.js +0 -244
- package/esm/maths/algebra/study/rationalStudy.js.map +0 -1
- package/esm/maths/algebra/study.js +0 -380
- package/esm/maths/algebra/study.js.map +0 -1
- package/esm/maths/coefficients/fraction.js +0 -517
- package/esm/maths/coefficients/fraction.js.map +0 -1
- package/esm/maths/coefficients/nthRoot.js +0 -137
- package/esm/maths/coefficients/nthRoot.js.map +0 -1
- package/esm/maths/geometry/circle.js +0 -324
- package/esm/maths/geometry/circle.js.map +0 -1
- package/esm/maths/geometry/line.js +0 -485
- package/esm/maths/geometry/line.js.map +0 -1
- package/esm/maths/geometry/point.js +0 -167
- package/esm/maths/geometry/point.js.map +0 -1
- package/esm/maths/geometry/triangle.js +0 -276
- package/esm/maths/geometry/triangle.js.map +0 -1
- package/esm/maths/geometry/vector.js +0 -198
- package/esm/maths/geometry/vector.js.map +0 -1
- package/esm/maths/numeric.js +0 -136
- package/esm/maths/numeric.js.map +0 -1
- package/esm/maths/numexp.js +0 -186
- package/esm/maths/numexp.js.map +0 -1
- package/esm/maths/randomization/random.js +0 -79
- package/esm/maths/randomization/random.js.map +0 -1
- package/esm/maths/randomization/randomCore.js +0 -22
- package/esm/maths/randomization/randomCore.js.map +0 -1
- package/esm/maths/randomization/rndFraction.js +0 -44
- package/esm/maths/randomization/rndFraction.js.map +0 -1
- package/esm/maths/randomization/rndGeometryLine.js +0 -46
- package/esm/maths/randomization/rndGeometryLine.js.map +0 -1
- package/esm/maths/randomization/rndGeometryPoint.js +0 -61
- package/esm/maths/randomization/rndGeometryPoint.js.map +0 -1
- package/esm/maths/randomization/rndHelpers.js +0 -98
- package/esm/maths/randomization/rndHelpers.js.map +0 -1
- package/esm/maths/randomization/rndMonom.js +0 -53
- package/esm/maths/randomization/rndMonom.js.map +0 -1
- package/esm/maths/randomization/rndPolynom.js +0 -75
- package/esm/maths/randomization/rndPolynom.js.map +0 -1
- package/esm/maths/randomization/rndTypes.js +0 -3
- package/esm/maths/randomization/rndTypes.js.map +0 -1
- package/esm/maths/shutingyard.js +0 -443
- package/esm/maths/shutingyard.js.map +0 -1
- package/public/demo.css +0 -3
- package/public/index.html +0 -283
- package/public/matrices.html +0 -100
- package/public/playground.html +0 -168
- package/src/index.ts +0 -42
- package/src/maths/algebra/equation.ts +0 -897
- package/src/maths/algebra/linearSystem.ts +0 -370
- package/src/maths/algebra/logicalset.ts +0 -183
- package/src/maths/algebra/monom.ts +0 -1028
- package/src/maths/algebra/polynom.ts +0 -1537
- package/src/maths/algebra/rational.ts +0 -240
- package/src/maths/algebra/study/rationalStudy.ts +0 -287
- package/src/maths/algebra/study.ts +0 -506
- package/src/maths/coefficients/fraction.ts +0 -593
- package/src/maths/coefficients/nthRoot.ts +0 -148
- package/src/maths/geometry/circle.ts +0 -382
- package/src/maths/geometry/line.ts +0 -604
- package/src/maths/geometry/point.ts +0 -215
- package/src/maths/geometry/triangle.ts +0 -368
- package/src/maths/geometry/vector.ts +0 -242
- package/src/maths/numeric.ts +0 -162
- package/src/maths/numexp.ts +0 -184
- package/src/maths/randomization/random.ts +0 -80
- package/src/maths/randomization/randomCore.ts +0 -19
- package/src/maths/randomization/rndFraction.ts +0 -47
- package/src/maths/randomization/rndGeometryCircle.ts +0 -50
- package/src/maths/randomization/rndGeometryLine.ts +0 -53
- package/src/maths/randomization/rndGeometryPoint.ts +0 -69
- package/src/maths/randomization/rndHelpers.ts +0 -107
- package/src/maths/randomization/rndMonom.ts +0 -57
- package/src/maths/randomization/rndPolynom.ts +0 -90
- package/src/maths/randomization/rndTypes.ts +0 -43
- package/src/maths/shutingyard.ts +0 -496
- package/tests/algebra/equation.test.ts +0 -64
- package/tests/algebra/linear.test.ts +0 -58
- package/tests/algebra/monom.test.ts +0 -78
- package/tests/algebra/polynom.test.ts +0 -343
- package/tests/algebra/rationnal.test.ts +0 -64
- package/tests/algebra/study.test.ts +0 -48
- package/tests/coefficients/fraction.test.ts +0 -131
- package/tests/custom.test.ts +0 -33
- package/tests/geometry/circle.test.ts +0 -404
- package/tests/geometry/line.test.ts +0 -36
- package/tests/numeric.test.ts +0 -43
- package/tests/numexp.test.ts +0 -89
- package/tests/shutingyard.test.ts +0 -58
- package/tsconfig.json +0 -41
- package/tsconfig.testing.json +0 -28
- package/typedoc.katex.js +0 -11
- package/webpack-production-min.config.js +0 -26
- package/webpack-production.config.js +0 -26
- package/webpack.config.js +0 -26
- package/{esm → dist}/maths/algebra/logicalset.d.ts +6 -6
- package/{esm → dist}/maths/coefficients/fraction.d.ts +0 -0
- package/{esm → dist}/maths/coefficients/nthRoot.d.ts +0 -0
- package/{esm → dist}/maths/numeric.d.ts +0 -0
- package/{esm → dist}/maths/numexp.d.ts +3 -3
- /package/{esm → dist}/maths/randomization/randomCore.d.ts +0 -0
- /package/{esm → dist}/maths/randomization/rndHelpers.d.ts +0 -0
- /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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"}
|