Laden...

Elemente "durcheinander" positionieren

Erstellt von Phaiax vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.959 Views
P
Phaiax Themenstarter:in
56 Beiträge seit 2006
vor 15 Jahren
Elemente "durcheinander" positionieren

Hallo zusammen.

Ich will mir ein UserControl basteln und hänge gerade etwas an der Umsetzung.
Das Control sieht folgendermaßen aus:

In dem Control stehen 3 Hauptbegriffe, jeweils akzentuiert in farblich passenden Kästchen. Der erste Begriff steht (derzeit) oben links, der zweite oben rechts und der dritte unten in der Mitte.

Nun sollen Wörter, die zu jeweils einem Begriff gehören, in einer "chaotischen" Wolke um die jeweiligen Hauptbegriffe angeordnet werden. Die Wörter stehen einfach so (ungerahmt) in dem Control herum. Die Wörter sollten sich nicht überschneiden. Sollte ich mehr Wörter als Platz haben, kann ich die selterer benutzten Wörter auch in einer Dropdown-Box oder etwas ähnlichem auslagern.
Die Größe des Controls ist von der Fenstergröße abhängig, deshalb passen mal mehr und mal weniger Wörter um einen Hauptbegriff. Das heißt ich brauche einen dynamischen Algorithmus und nichts statisches. Die Wörter sollen später farblich ihrem Begriff angepasst werden, deshalb muss zwischen zwei Wörtern, die zu zwei unterschiedlichen Hauptbegriffen gehören kein besonders großer Abstand vorhanden sein. Die Hauptbegriffe sind statisch, die umliegenden Wörter nicht (Anzahl und Text variiert 🙂 ).

Und jetzt: Wie stelle ich das an?

Meine Vorstellungen:
a) Jemand hier kennt einen super Algorithmus, der sehr schnell die perfekte Ausrichtung eines jeden Worts ausrechnen kann. Den muss ich nur noch einbauen und fertig ist 🙂
b) Alle Wörter zu einem Begriff zufällig um den jeweiligen Begriff positionieren. Dann per Algorithmus die Wörter soweit auseinanderschieben, bis sich nichts mehr überschneidet
c) Mit einem Wort anfangen, möglichts nah am Begriff anfangen, dann zum nächsten Wort die nächstegelegene Position nehmen, usw...

Da das Programm, zu dem dieses Control gehört, auch noch aus anderen Dingen besteht, will ich mich eigentlich nicht länger als nötig an diesem Control aufhalten. 🙂

Für Tipps, Erklärungen, Eingebungen, Anstöße und sonstige Einwürfe zum Thema bin ich sehr dankbar!

Grüße, Phaiax

P
Phaiax Themenstarter:in
56 Beiträge seit 2006
vor 15 Jahren

Damit man sich vielleicht besser vorstellen kann, wie mein UserControl aussieht, hab ich im Anhang einen Screenshot.

Desweiteren habe ich inzwischen ein neues Wunschfeature: Wörter sollten immer an der selben stelle auftauchen.
Wäre es möglich, einen Zufallsgenerator zu benutzen, den man mit einem aus dem Wort berechnen Wert initialisiert?

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Phaiax,

Wäre es möglich, einen Zufallsgenerator zu benutzen, den man mit einem aus dem Wort berechnen Wert initialisiert? new Random (str.GetHashCode ()) sollte es tun.

herbivore