Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 27-03-2017, 21:26
boeserfrosch
 Registrierter Benutzer
Links : Onlinestatus : boeserfrosch ist offline
Registriert seit: Nov 2009
Beiträge: 93
boeserfrosch befindet sich auf einem aufstrebenden Ast
Standard

Beschreib am besten mal dein Gesamtproblem, dann lässt sich einfacher ein Vorschlag machen wie man das lösen könnte.

Durch die Komma-Werte sah es für mich nach Zentimeter-Werten aus.
Wenn ich mir den von dir verlinkten Code ansehen dann kommen die krummen Werte vom ratio. Hast du den angepasst?

Mit
Code:
CenterX = sum(array[x])/length(array);
meine ich, wie du schon korrekt erkannt hast, das alle XWerte summiert werden und die Gesamtsumme dann durch die Anzahl der Punkte geteilt wird.

Mit dem Flächenschwerpunkt berechnet man die Position an welchem sich das "Gewicht" eine Fläche konzentrieren würde wenn man die Fläche immer weiter verkleinert.
Oder im drei-dimensionalen: Wo liegt das Gewichtszentrum eines Körpers.

Stell dir beispielsweise einen optimalen Kreisel vor: Das Gewichtszentrum liegt in X-Y-Richtung genau im Mittelpunkt - In Z-Richtung irgendwo auf der Z-Achse.
Hast du nun einen nicht optimalen Kreisel, beispielsweise durch einen Ausbruch an der Kante so liegt der Schwerpunkt nicht mehr im Mittelpunkt.
Deine Punkte sind dann sowas wie Teilflächen mit der Ausdehnung 0 aber dem Gewicht der ursprünglichen Flächen. In deinem Fall sind alle gleich schwer, also können wir das tatsächliche Gewicht vernachlässigen.
Das Zentrum aller Punkte ist somit das Zentrum aller Flächen und damit der Flächenschwerpunkt.

Anderes Beispiel um sich das zu verdeutlichen ist eine Wippe, wenn beide Kinder gleich viel wiegen und beide gleich weit vom Mittelpunkt entfernt sitzen liegt der Flächenschwerpunkt in der Mitte -> Die Wippe bleibt waagerecht. Sitzt ein Kind weiter weg oder ist es schwerer als das andere wandert der Flächenschwerpunkt zu diesem Kind und die Wippe kippt.

Genauso verhält es sich mit deinen Punkten.

Die berechneten Werte lassen sich dann mit der Gleichung:
Code:
mm = pixels * mm/pixel
oder deiner Gleichung:
Code:
mm = (pixels * 25.4) / dpi
in milimeter umrechenen.
Beachte aber das du bei dpi auch die korrekten Angaben nutzt.

Ansonsten wie Anfangs gesagt, schildere am besten was du genau vorhast!
Mit Zitat antworten