J'ai besoin d'initialiser quelques points en trois dimensions, et je veux qu'ils soient équidistants dans un cube. Existe-t-il des moyens créatifs de le faire? J'utilise un algorithme de maximisation de l'attente itératif et je veux que mes vecteurs initiaux "étendent" l'espace uniformément. Par exemple, supposons que j'ai huit points que je veux espacer également dans un cube de taille 1x1x1. Je voudrais que les points aux coins d'un cube avec une longueur de côté de 0,333, centré dans le plus grand cube.Points équidistants à travers un cube
Un exemple 2D est ci-dessous. Notez que les points rouges sont équidistants les uns des autres et les bords. Je veux la même chose pour la 3D.
Dans les cas où le nombre de points ne dispose pas d'une racine cubique entier, je suis très bien avec laissant des « lacunes » dans l'arrangement.
Actuellement, je prends la racine cubique du nombre de points et de l'utiliser pour calculer le nombre de points et la distance désirée entre eux. Ensuite, je parcourt les points et incrémente les coordonnées X, Y et Z (décalées de sorte que Y ne s'incrémente pas jusqu'à ce que X reboucle à 0, même chose pour Z à l'égard de Y).
S'il y a un moyen facile de le faire dans MATLAB, je serais ravi de l'utiliser.
Vous n'avez pas complètement défini le problème, par exemple il y aura beaucoup de dispositions possibles de 2 points dans un cube 3D. –
3D est souvent difficile à expliquer dans le texte. Pouvez-vous nous donner un croquis? – ralphtheninja
Pourquoi vos 8 pts seraient dans un cube 1/3? Pourquoi pas un cube de 1/2 ou un cube de 9/10? – RBarryYoung