Algorithmen zum Positionieren von Objekten auf einer Leinwand
-
20-08-2019 - |
Frage
Wo finde ich einen Algorithmus, um einige Objekte auf clevere Weise auf der Leinwand zu positionieren?Ich verwende Javascript (mit der Raphael-SVG-Bibliothek), aber Beispiele mit anderen Sprachen (oder Pseudosprachen) sind willkommen.Geometrie ist nicht meine Stärke =)
Ich habe zum Beispiel eine Leinwand im Format 600x800 und möchte sie platzieren N Objekte in der Größe 60x60 auf clevere Art und Weise, zum Beispiel:
- ein Algorithmus zum Positionieren von Objekten entlang M konzentrische Kreise mit Ö versetzt.
- ein Algorithmus zum Positionieren von Objekten entlang M konzentrische Quadrate, aber eine alternative Frequenz (das Ergebnis kann wie ein Schachbrett sein)
Und ähnliche Beispiele..Ich suche nur nach einigen Arbeitsbeispielen, die ich an meinen Fall anpassen kann.Vielen Dank im Voraus =)
Lösung
Für Kreis:
Eingaben:CenterPt (vermutlich 300.400), RadiusLargestCircle (vermutlich 270, um sicherzustellen, dass alle Objekte auf dem Bildschirm angezeigt werden) RadiusDelta(60 stellt sicher, dass keine überlappenden Objekte vorhanden sind, vorausgesetzt, die Objekte sind Kreise)
Anzahl der Kreise berechnen ( (RadiusLargestCircle -2*RadiusDelta) / RadiusDelta )
für jeden Kreis
RadCir= RadiusLargestCircle - (CircleNum*RadiusDelta)
(Ich werde das später richtig zu Ende bringen, ich muss jetzt loslegen)
aber im Wesentlichen liegt der Mittelpunkt des ersten Objekts bei x=radiusLargestCircle, y=0
Teilen Sie Objekt 2*Radius in Kreisumfang
für num Objekte
unter Verwendung der parametrischen Kreisgleichung, Platzieren Sie das Objekt im Bogenmaß von X Bogenmaß des vorherigen Objekts
nächster Kreis