list-centroid.pd 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #N canvas 204 70 675 629 10;
  2. #X obj 127 475 f;
  3. #X obj 127 65 inlet;
  4. #X obj 127 561 outlet;
  5. #X obj 163 170 list-enumerate;
  6. #X obj 163 197 t a a;
  7. #X obj 261 406 /;
  8. #X obj 261 376 swap;
  9. #X obj 210 345 select 0;
  10. #N canvas 286 344 401 287 sum(mi*i) 0;
  11. #X obj 126 138 +;
  12. #X obj 153 139 f;
  13. #X msg 168 88 0;
  14. #X obj 126 66 inlet;
  15. #X obj 168 66 inlet;
  16. #X obj 126 171 outlet;
  17. #X obj 126 103 *;
  18. #X connect 0 0 1 0;
  19. #X connect 0 0 5 0;
  20. #X connect 1 0 0 1;
  21. #X connect 2 0 0 1;
  22. #X connect 3 0 6 0;
  23. #X connect 4 0 2 0;
  24. #X connect 6 0 0 0;
  25. #X restore 284 255 pd sum(mi*i);
  26. #N canvas 573 330 450 328 sum(mi) 0;
  27. #X obj 179 137 +;
  28. #X obj 206 138 f;
  29. #X msg 296 77 0;
  30. #X obj 179 55 inlet;
  31. #X obj 296 55 inlet;
  32. #X obj 179 170 outlet;
  33. #X text 143 34 in: (idx value);
  34. #X text 40 89 swap to: (val idx);
  35. #X text 67 172 sum of values;
  36. #X obj 179 89 swap;
  37. #X connect 0 0 1 0;
  38. #X connect 0 0 5 0;
  39. #X connect 1 0 0 1;
  40. #X connect 2 0 0 1;
  41. #X connect 3 0 9 0;
  42. #X connect 4 0 2 0;
  43. #X connect 9 0 0 0;
  44. #X restore 163 253 pd sum(mi);
  45. #X obj 210 559 outlet;
  46. #X obj 127 399 spigot 1;
  47. #X obj 145 285 f;
  48. #X obj 240 528 print list-centroid;
  49. #X obj 210 468 t b b;
  50. #X msg 240 503 warning: sum of items equals 0: centroid is undefined!
  51. ;
  52. #X obj 127 89 t b b a b b;
  53. #X text 69 26 centroid (center of mass) = sum(mi * i) / sum(mi);
  54. #X connect 0 0 2 0;
  55. #X connect 1 0 16 0;
  56. #X connect 3 0 4 0;
  57. #X connect 4 0 9 0;
  58. #X connect 4 1 8 0;
  59. #X connect 5 0 0 1;
  60. #X connect 6 0 5 0;
  61. #X connect 6 1 5 1;
  62. #X connect 7 0 14 0;
  63. #X connect 7 1 6 0;
  64. #X connect 8 0 6 1;
  65. #X connect 9 0 12 1;
  66. #X connect 11 0 0 0;
  67. #X connect 12 0 7 0;
  68. #X connect 12 0 11 1;
  69. #X connect 14 0 10 0;
  70. #X connect 14 1 15 0;
  71. #X connect 15 0 13 0;
  72. #X connect 16 0 11 0;
  73. #X connect 16 1 12 0;
  74. #X connect 16 2 3 0;
  75. #X connect 16 3 9 1;
  76. #X connect 16 4 8 1;