Skip to content

Commit 790c254

Browse files
committed
im 65 years old
1 parent c8a3898 commit 790c254

25 files changed

Lines changed: 1415 additions & 907 deletions
Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
//
22
import 'dart:math';
3+
import 'DNum.dart';
34
/*
45
56
*/
@@ -10,15 +11,24 @@ class QNum {
1011
dynamic n3;
1112
dynamic n4;
1213

13-
QNum([dynamic n1, dynamic n2, dynamic n3, dynamic n4]):
14-
n1 = n1 ?? -1,
15-
n2 = n2 ?? 1,
16-
n3 = n3 ?? 2,
17-
n4 = n4 ?? 3;
14+
QNum([dynamic n1, dynamic n2, dynamic n3, dynamic n4])
15+
: n1 = n1 ?? -1,
16+
n2 = n2 ?? 1,
17+
n3 = n3 ?? 2,
18+
n4 = n4 ?? 3;
19+
20+
21+
22+
static harmonic(DNum dn, num t) {
23+
num a = dn.n1;
24+
num b = dn.n2;
25+
num m = (t * b - a) / (t - 1);
26+
num n = (t * b + a) / (t + 1);
27+
return QNum(a, m, b, n);
28+
}
1829

1930
@override
2031
String toString() {
2132
return 'QNum(${n1.toString()}, ${n2.toString()}, ${n3.toString()}, ${n4.toString()})';
2233
}
23-
24-
}
34+
}

lib/MathForest/Geometry/D2/Conic/Circle.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@ class Circle {
2626

2727
Circle.new2P(Vector p1, Vector p2) : p = p1, r = (p2 - p1).len;
2828

29+
Circle.newDiameter(DPoint dp) : p = dp.mid, r = dp.len/2;
30+
31+
2932
num get area => pi * r * r;
3033
num get cir => 2 * pi * r;
34+
DPoint get F => DPoint.overlap(p);
3135

3236
Vector indexPoint(num theta) => p + Vector(r) * cos(theta) + Vector(0, r) * sin(theta);
3337
DPoint indexDPoint(DNum theta) => DPoint(indexPoint(theta.n1), indexPoint(theta.n2));
@@ -38,6 +42,15 @@ class Circle {
3842
indexPoint(theta.n4),
3943
);
4044

45+
num thetaClosestP(Vector P) {
46+
Vector dp = P-p;
47+
return atan2(dp.y, dp.x);
48+
}
49+
50+
Vector closestP(Vector P) {
51+
return p + (P-p).unit * r;
52+
}
53+
4154
num disP(Vector p0){
4255
return funcs.abs((p0 - p).len - r);
4356
}

0 commit comments

Comments
 (0)