Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-02-2008, 16:34   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 102
Rechtecke entlang eines Kreises anordnen?

Hallo zusammen!

habe hier ein Problem, was zunehmend meine Gehirntemperatur nahe dem Kritischen Punkt bringt .... wie richte ich per Actionscript (nicht quadratische!) Rechtecke visuell ausgeglichen entlang eines Kreises aus?

Natürlich habe ich es zuerst so gemacht, dass die Rechtecke (Buttons um es genauer zu sagen) genau an den entsprechenden Segmenten am Kreis entlanglaufen, also bei 4 Buttons zB alle 90 Grad.
Dummerweise sieht das bei einer grösseren Menge Buttons (das kann ziemlich schwanken) so aus wie im angehängten Screenshot. Die Buttons sind zwar mit ihrem Mittelpunkt mathematisch korrekt entlang den Segmenten verteilt, aber es wirkt total unausgeglichen, dadurch dass die Buttons länger als breit sind.

Zu beachten evtl. noch, dass die Buttons nicht den gesamt Kreis ausnutzen sollen, oben links kommt an den Kreis noch ein Pfeil hin ^^

Also wie sorge ich dafür, dass die Abstände fürs Auge gleich sind?

Wäre für etwas Hilfe sehr dankbar!
Angehängte Grafiken
Dateityp: jpg screenshot.jpg (30,6 KB, 26x aufgerufen)
frankiee ist offline   Mit Zitat antworten
Alt 17-02-2008, 05:25   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
weiss nicht, ob's dafür eine formel gibt. aber man kann es annähern, das geht:


alle rechtecke erzeugen
do {

do {
das aktuelle rechteck weiter gedreht positionieren
} while (aktuelles mit vorherigem rechteck testen ob die sich überlagern)
wenn nicht mehr, dann um einen zusätzlichen winkel weiter positionieren

diesen zusätzlichen winkel grösser/kleiner machen,
je nachdem, ob das letzte rechteck den endwinkel erreicht hat
} while (bei hinlänglicher genauigkeit abbrechen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 18-02-2008, 12:42   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 102
najaaaa, es geht ja nicht nur darum dass sich die Rechtecke nicht überlappen, sondern gleichmässig fürs Auge ausgerichtet sind.

Hmm, viel schwieriger als ich dachte - ich komm nicht mal auf einen theoretischen Lösungsweg

Hat noch jemand eine Idee?
frankiee ist offline   Mit Zitat antworten
Alt 18-02-2008, 13:02   #4 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Zitat:
Zitat von frankiee Beitrag anzeigen
es geht ja nicht nur darum dass sich die Rechtecke nicht
überlappen, sondern gleichmässig fürs Auge ausgerichtet sind.
Das wirst Du wohl auch nur über Augenmaß lösen können.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 18-02-2008, 13:34   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 102
Augenmass? mit Actionscript? wie das?
frankiee ist offline   Mit Zitat antworten
Alt 18-02-2008, 14:02   #6 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Zitat:
Zitat von frankiee Beitrag anzeigen
Augenmass? mit Actionscript? wie das?
Leider eben gar nicht.

Das Einzige was mir zu diesen Thema einfallen würde,
wäre Varianten mit verschieden vielen Rechtecken zu
erstellen und diese nach Augenmaß auszurichten.

Danach mußt Du die Positionen bzw. Abstände der Recht-
ecke zueinander (abhängig von ihren Positionen, denn
unten und oben am Kreis werden die Abstände größer
sein, als links und rechts) in Arrays schreiben.

Und danach kannst Du die Abstände bei n Elementen
eventuell aus den Werten, die Du schon hast, herleiten.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 18-02-2008, 17:56   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 102
Danke Gaspode! Das wär zumindest eine Fallback-Lösung die immer geht. Allerdings noch etwas zu viel "Brute Force" für meinen Geschmack. Aber zumindest beruhigend, was in der Hinterhand zu haben.
frankiee ist offline   Mit Zitat antworten
Alt 18-02-2008, 19:17   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
auf auf, werte damen und herren! hier gibt es mal ein interessantes problem zu lösen ;-)

das z.b. schafft mein programm. die ergebnisse werden nicht berechnet, sondern angenähert.
wer kann's besser?
Angehängte Grafiken
Dateityp: gif Bild1.gif (2,1 KB, 9x aufgerufen)
Dateityp: gif Bild2.gif (2,0 KB, 11x aufgerufen)
Dateityp: gif Bild3.gif (1,7 KB, 8x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 19-02-2008, 12:36   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 102
Günter, ich glaube die Krone gehört Dir Mein Lösungsansatz, die Buttons entsprechend ihrer Winkellage zu verschieben hat wohl leider auch ein paar entscheidende Haken ....

Sonst noch wer? Auf auf Leute, das mal ne echte Nuss zu knacken
frankiee ist offline   Mit Zitat antworten
Alt 19-02-2008, 19:18   #10 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
glaube auch kaum, das man für sowas eine formel finden kann.
vielleicht ein gleichungssystem mit x unbekannten, die das ganze beschreiben? das zu berechnen dauert aber auch.

somit wie schon beschrieben experimentell ermitteln:
die rechtecke so lange verschieben, bis sie sich nicht mehr überdecken. das ergibt einen mindestwinkel im kreis, den die rechtecke so erreichen.
ist die differenz erreichter winkel zu gewünschtem belegungswinkel zu gross, dann:
das ganze nochmal, wobei jedes rechteck jeweils ein stück weiter gedreht wird.

bei guter auswahl der veränderungen je test ist das ziel nach 4..8 durchläufen zu erreichen.


so variabel wird's aber bestimmt garnicht benötigt?
in der praxis wird sich der radius und die grösse der rechtecke nicht ändern, sondern nur deren anzahl und die auch nicht willkürlich?
somit würde ich auch die variante von gaspode vorziehen:
per hand ermittelte koordinaten in ein array
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (19-02-2008 um 19:21 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele