N Punkte (gestapelt) in Fläche X,Y verteilen

27/10/2007 - 21:42 von Patrick Grochowy | Report spam
Hallo die Damen und Herren Zahlenbieger,

ich hàtte da mal eine Frage:

gegeben sind N Punkte die in eine Flàche X mal Y
gestapelt werden sollen mit gleichem Abstand zueinander
(evtl. sind die Punkte sogar jeweils eine Flàche mit
bekannter Seitenlànge).

Konkret geht es darum, die Startpunkte von N 3D-Kurven,
die in einer gegebenen Bounding-Box gebaut werden.
(deren weiterer Verlauf aber hier nicht interessiert,
ich möchte erstmal die Startpunkte auf der Y-Z-Flàche
gleichmàßig gestapelt anordnen).

X und Y (im 3D-Raum Y und Z) sind durch die Größe der
Bounding-Box (die der Nutzer vorher erstellt) vorgegeben,
können also beliebige Werte haben.

Als Mathe-Dau komme ich nicht drauf, wie ich diese Sache
am besten löse, ich hatte schon Varianten, wo ich die
Anzahl N durch die jeweilige Kantenlànge geteilt habe, um
die Anzahl der Schritte pro Richtung herauszubekommen oder
N mit dem Seitenverhàltnis der Flàche verwurschtelt und
bin jetzt erstmal bei einer Variante, wo ich stupide die
Wurzel aus N nehme, den Wert für die eine Kante auf- und
die andere abrunde (bzw. beide Aufrunde wenn X und Y gleich
sind) und diese Anzahl dann jeweils als Teiler benutze,
um die Schrittzahl pro Achse zu bekommen.

Aber sowohl Anzahl als auch Aufteilung weichen so stellenweise
erheblich von der eigentlich gewünschten Anzahl ab (bei der
jetzigen Variante noch am vorhersagbarsten). :-(

Nun bin ich eigentlich recht zuversichtlich, daß es für diese
Sache eine pfiffige Methode gibt (die vermutlich ein paar
Sonderfàlle behandeln muß), bzw. geben muß.

(ganz ursprünglich wollte ich sogar noch eine "gleichmàßige"
Verteilung in der Flàche, also bei z.B. N = 5 Punkte in einer
Flàche X = 2, Y = 2: zwei unten, einen im Zentrum und zwei
oben. Bei N = 5, X = 3 und Y = 2 aber schon drei unten und
zwei oben; aber das scheint noch eine Stufe verzwickter zu
sein, wie ich nach Bekakelung mit einem Bauingenieur
feststellen durfte ...)

Wie bekommt man sowas am besten hingerechnet, wer kann mir da
mal ein wenig unter die Arme greifen, ich sehe mittlerweile
überhaupt nicht mehr durch die Chose durch ...

Gruß Paddy
heb nix to siggen
 

Lesen sie die antworten

#1 Roland Damm
28/10/2007 - 00:24 | Warnen spam
Moin,

Patrick Grochowy schrub:

Als Mathe-Dau komme ich nicht drauf, wie ich diese Sache
am besten löse, ich hatte schon Varianten, wo ich die
Anzahl N durch die jeweilige Kantenlànge geteilt habe, um
die Anzahl der Schritte pro Richtung herauszubekommen oder
N mit dem Seitenverhàltnis der Flàche verwurschtelt und



In X-Richtung also Nx Schritte, in Y-Richtung Ny. Dann sollte
Nx=sqrt(N)*X/Y
Ny=sqrt(N)*Y/X
sein. Siehe da: Nx*Ny=N

Nur tut dir das N wohl selten den Gefallen, genau so groß zu
sein, dass Nx und Ny ganze Zahlen werden.

Nun bin ich eigentlich recht zuversichtlich, daß es für diese
Sache eine pfiffige Methode gibt (die vermutlich ein paar
Sonderfàlle behandeln muß), bzw. geben muß.



Ist glaube ich im allgemeinen nicht einfach lösbar.

(ganz ursprünglich wollte ich sogar noch eine "gleichmàßige"
Verteilung in der Flàche, also bei z.B. N = 5 Punkte in einer
Flàche X = 2, Y = 2: zwei unten, einen im Zentrum und zwei
oben. Bei N = 5, X = 3 und Y = 2 aber schon drei unten und
zwei oben; aber das scheint noch eine Stufe verzwickter zu
sein, wie ich nach Bekakelung mit einem Bauingenieur
feststellen durfte ...)



Bist du auf Ganze Zahlen festgelegt?

Wenn nein:

Ist ein iteratives Lösungsverfahren erlaubt, also eines, was
etwas mehr Rechenzeit kostet (so bei N0 geschàtzt 0,1s)?

Dann verteile die Punkte erst mal zufàllig. Dann gehe alle Punkte
der Reihe nach durch und berechne für jeden die Abstànde zu
allen anderen Punkten. Nimm von diesen Abstànden die meinetwegen
4 bis 6 kleinsten. Für diese Punkte, die den kleinsten Abstand
haben, berechnest du 'Abstoßungskràfte', also so was ganz wie
bei Schwerkraft, nur abstoßend. Entsprechend der Kraft
verschiebst du den Punkt. Und weiter in der Schleife. Und das
Ganze so lange widerholen, bis sich die Punkte nicht mehr
bewegen. Natürlich dürfen die Punkte dabei nicht die Box
verlassen.

CU Rollo

Ähnliche fragen