2012-10-31 3 views
0

J'écris le programme dans Cocoa mais je pense que la solution doit être assez universelle.Calculer le point moyen pondéré à partir du tableau de points 3D

J'ai un ensemble de points représentés par des vecteurs 3D. Chaque point a un poids attribué. Le poids est compris entre 0 et 1. La somme de tous les poids n'est pas égale à 1.

Comment calculer le point moyen pondéré à partir d'un tel ensemble? Une solution mathématique programmatique ou purement mathématique sera utile. Bien sûr, si Cocoa a des outils spécifiques pour résoudre cette tâche, j'apprécierais beaucoup cette information.

Répondre

2

Il suffit de sommer tous les vecteurs mis à l'échelle par leur poids. Enfin, divisez par la somme de tous les poids. Cela a le même effet que d'abord normaliser tous les poids pour totaliser 1.

Pseudo-code:

sum = [0, 0, 0] 
totalWeights = 0 
for each point p with associated weight w: 
    sum += p * w 
    totalWeights += w 
mean = sum/totalWeights 
Questions connexes