Zurück   Flashforum > Ohne Thema > Am Rande

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-01-2011, 13:45   #1 (permalink)
pirate
 
Benutzerbild von robert
 
Registriert seit: Nov 2005
Beiträge: 983
Algorithmus für zufällige Positionierung

hi leute,
ich bin auf der suche nach einem algorithmus um beispielsweise
20 rechteckige Divs im browserfenster zu positionieren - zufällig.

dabei dürfen diese sich nicht überschneiden und haben auch verschiedene
größen. gibt es hierfür irgendwo lösungen? oder hat evtl. jemand
einen kleinen denkanstoß parat?


vielen dank
__________________
:: apfeltrip.

:: http://mumedia.net/blog
:: http://mumedia.net
robert ist offline   Mit Zitat antworten
Alt 20-01-2011, 15:27   #2 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
Mein Ansatz wäre folgender

Divs in ein Array pushen, dieses dann "mischen" und danach die Divs der Reihen nach hintereinander positionieren.

Also nicht die Position auf dem Bildschirm zufällig wählen sondern die Position im Array dadurch ersparst du dir unnötige Kollisionsabfragen wenn sich die Größe nicht all zu stark unterscheidet.
__________________
mfg Frank
mildesign ist offline   Mit Zitat antworten
Alt 20-01-2011, 15:36   #3 (permalink)
pirate
 
Benutzerbild von robert
 
Registriert seit: Nov 2005
Beiträge: 983
Zitat:
Zitat von mildesign Beitrag anzeigen
Mein Ansatz wäre folgender

Divs in ein Array pushen, dieses dann "mischen" und danach die Divs der Reihen nach hintereinander positionieren.

Also nicht die Position auf dem Bildschirm zufällig wählen sondern die Position im Array dadurch ersparst du dir unnötige Kollisionsabfragen wenn sich die Größe nicht all zu stark unterscheidet.
ja aber die größe kann sich sehr unterscheiden. und wenn ich das mache hab ich dadurch ja keine "random" position. ich versuchs gerade mit zwei for-schleifen aber entweder schreib ich was falsch oder das funktioniert so nicht g.
__________________
:: apfeltrip.

:: http://mumedia.net/blog
:: http://mumedia.net
robert ist offline   Mit Zitat antworten
Alt 20-01-2011, 18:23   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
H.G.Seib -> Verteilen: Sich selbst verteilende Objekte.

H.G.Seib -> Position: haus_und_klaus: Objekte ohne Üderdeckung auf der Bühne positionieren
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 21-01-2011, 14:58   #5 (permalink)
pirate
 
Benutzerbild von robert
 
Registriert seit: Nov 2005
Beiträge: 983
hi hgseib. das hat mir leider nicht wirklich weitergeholfen, da ich in javascript
keinen hittest habe. ich poste jetzt mal meinen code. von der logik her
müsste dieser doch eigentlich funktionieren oder? er tuts aber nicht

die arrays sind alle so groß, wieviele divs es gibt. xP ist die xPosition, yP ist die yPosition, xPRT ist
die xPositionRightBottom, also das rechte obere eck, und so weiter.

ich versuche im prinzip immer ein objekt mit allen anderen zu vergleichen und schaue, ob eine der
ecken innerhalb des anderen objekts ist. wenn ja, gib ihm ne neue position. aber irgendwie funktioniert
es nicht. es überlappen sich immernoch rechtecke.

Code:
for(var i = 0; i<xP.length; i++) {	
				for(var k = 0; k<xP.length; k++) {
					if(i == k) {
						//alert(Math.random());
					} else {
						while((xP[i]>xP[k] && yP[i]>yP[k] && xP[i]<xPRB[k] && yP[i]<yPRB[k]) || (xPRT[i]<xPRT[k] && yPRT[i]>yPRT[k] && xPRT[i]>xP[k] && yPRT[i]<yPRB[k]) || (xPRB[i]<xPRB[k] && yPRB[i]<yPRB[k] && xPRB[i]>xP[k] && yPRB[i]>yP[i]) || (xPLB[i]>xPLB[k] && yPLB[i]<yPLB[k] && xPLB[i]<xPRB[k] && yPLB[i]>yP[k])) {
							//alert("i: "+i+" k: "+k+" xP: "+xP[i]+" > xP2: "+xP[k]+" & yP: "+yP[i]+"  > yP2: "+yP[k]);
							xP[i] = GetRandom(0, window.innerWidth - widthArray[i]-2);
							yP[i] = GetRandom(0, window.innerHeight - heightArray[i]-2);

							xPRT[i] = xP[i] + widthArray[i];
							yPRT[i] = yP[i];

							xPRB[i] = xP[i]+ widthArray[i];
							yPRB[i] = yP[i]+ heightArray[i];

							xPLB[i] = xP[i];
							yPLB[i] = yP[i] + heightArray[i];
							count++;
							
						};
					}
				}
			}
nach dieser berechnung werden dann die divs platziert:

Code:
for (var i = 0; i < dA.length; i++){
				$(dA[i]).css({'left': xP[i], 'top': yP[i]});
				$(dA[i]).hover(
					function() {
						$(this).removeClass().addClass("zoom1");
					},
					function() {
						$(this).removeClass().addClass("zoom0");
					});
			};

irgendwelche ideen? ich komm einfach nich vorran, schrecklich, echt g.
__________________
:: apfeltrip.

:: http://mumedia.net/blog
:: http://mumedia.net
robert ist offline   Mit Zitat antworten
Alt 21-01-2011, 18:00   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von robert Beitrag anzeigen
das hat mir leider nicht wirklich weitergeholfen, da ich in javascript keinen hittest habe
du kannst auf rechtecke oder kreise testen. also rein numerisch.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 21-01-2011, 18:50   #7 (permalink)
pirate
 
Benutzerbild von robert
 
Registriert seit: Nov 2005
Beiträge: 983
Zitat:
Zitat von hgseib Beitrag anzeigen
du kannst auf rechtecke oder kreise testen. also rein numerisch.
ja klar, indem ich die eckpunkte der formen berechne. aber scheinbar
will das so recht ja nciht funktionieren. und hittest gibts ja wie gesagt
nicht in javascript.
__________________
:: apfeltrip.

:: http://mumedia.net/blog
:: http://mumedia.net
robert ist offline   Mit Zitat antworten
Alt 21-01-2011, 20:23   #8 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
ich bin nicht mehr so fit in JS, aber das scheint jemand was gebastelt zu haben.

Geral.Hit Test - JSFromHell.com: JavaScript Repository
__________________
mfg Frank
mildesign 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
zufällige Positionierung an vordefinierten Poitionen Koronki ActionScript 2 8 03-12-2006 15:27
zufällige reihefolge und zufällige zeit afroman ActionScript 1 0 15-03-2004 16:21
Zufällige Positionierung von MC´s ohne Überschneidungen ElectroCunt ActionScript 1 0 16-01-2004 16:44
Gesucht: Effektiver Algorithmus für zufällige Anordnung von nicht-überlappenden MCs cip22 ActionScript 1 8 14-01-2004 13:06
Zufällige Positionierung von MCs?? metrix Flash 4 und Flash 5 1 18-10-2001 20:20


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele