aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/abstractions/#moment_polar.pd
diff options
context:
space:
mode:
Diffstat (limited to 'externals/gridflow/abstractions/#moment_polar.pd')
-rw-r--r--externals/gridflow/abstractions/#moment_polar.pd52
1 files changed, 52 insertions, 0 deletions
diff --git a/externals/gridflow/abstractions/#moment_polar.pd b/externals/gridflow/abstractions/#moment_polar.pd
new file mode 100644
index 00000000..f15f4671
--- /dev/null
+++ b/externals/gridflow/abstractions/#moment_polar.pd
@@ -0,0 +1,52 @@
+#N canvas 247 235 583 454 10;
+#X obj 21 20 inlet 2nd_moment_matrix;
+#X obj 21 419 outlet angle;
+#X obj 21 208 #grade;
+#X obj 53 88 #transpose;
+#X obj 21 285 #store;
+#X obj 21 189 # inv+ (f #);
+#X text 76 211 sort eigenvectors;
+#X text 76 223 by eigenvalues downwards;
+#X obj 21 266 #redim (1);
+#X obj 21 342 # atan;
+#X obj 21 304 #unpack;
+#X obj 74 304 #pack 1 f;
+#X obj 21 323 #pack 1 f;
+#X text 29 358 angle of (one of the two) longest radius;
+#X text 113 247 but pick only biggest;
+#X text 96 70 eigenvectors (axes of the ellipse);
+#X text 28 370 centidegrees 0..35999;
+#X text 27 148 squareroots of eigenvalues (radiuses of the ellipse)
+;
+#X obj 21 165 #t;
+#X obj 147 296 #store;
+#X text 185 21 (float);
+#X obj 21 132 # sqrt (f #);
+#X obj 21 45 #cast f;
+#X obj 21 396 #export;
+#X obj 21 238 #t;
+#X obj 147 277 #outer + (0);
+#X obj 134 420 outlet radiuses_sorted;
+#X obj 21 69 cv.SVD;
+#X connect 0 0 22 0;
+#X connect 2 0 24 0;
+#X connect 3 0 4 1;
+#X connect 4 0 10 0;
+#X connect 5 0 2 0;
+#X connect 8 0 4 0;
+#X connect 9 0 23 0;
+#X connect 10 0 12 0;
+#X connect 10 1 11 0;
+#X connect 11 0 9 1;
+#X connect 12 0 9 0;
+#X connect 18 0 5 0;
+#X connect 18 1 19 1;
+#X connect 19 0 26 0;
+#X connect 21 0 18 0;
+#X connect 22 0 27 0;
+#X connect 23 0 1 0;
+#X connect 24 0 8 0;
+#X connect 24 1 25 0;
+#X connect 25 0 19 0;
+#X connect 27 0 21 0;
+#X connect 27 1 3 0;