SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.05.2009, 19:17:47
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
collision detection

Hallo zusammen,

ich zeichne mit der gc Kreise und möchte sie in einem Trapetz/Rechteck möglichst effizient verteilen, sprich dass alle Platz haben oder nur so wenig wie möglich außerhalb bleiben müssen.

Probleme hierbei:

- Kreise haben unterschiedliche Größe
- Kreise haben festen X-Wert, allerdings sollen zum Platzsparen mehrere nebeneinander stehen (müsste also mitberechnet werden)

Maße sind alle bekannt. Jemand ne Idee wie man sowas am besten angeht?
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #2  
Alt 26.05.2009, 22:57:14
Benutzerbild von CeBe
CeBe CeBe ist offline
Anfänger
 
Registriert seit: Oct 2008
Ort: Freden
Alter: 35
Beiträge: 37
CeBe eine Nachricht über ICQ schicken CeBe eine Nachricht über Skype™ schicken
AW: collision detection

Moin Domi!

ich nehme an, du hast die Kreise alle in einem Array, dass du durchlaufen kannst und kannst diesen die Position x und y zuweisen.

Es hat jeder Kreis einen festen X-Wert. Y ist überall 0.
Zusätzlich gibst du dem Kreis einen Flag, ob seine Position schon festgelegt wurde:
'pos_fix' = FALSE (ich bin mir nicht sicher, aber kann sein, dass ich den später garnicht brauche, schreib grad einfach meine Gedanken dazu runter^^)

Du brauchst noch eine Funktion, die eine Kollision checkt, anhand von 2 koordinatenpaaren und 2 radien. function collision($x1, $y1, $r1, $x2, $y2, $r2)
mit ein bisschen mathematik sollte das zu schaffen sein, wenn nicht denk ich mir dazu in ner stillen Stunde mal was aus ;-)

jetzt durchläuftst du alle Kreise per foreach.

für jeden kreis addierst du so lange einen Y-Wert bis deine collision-Function FALSE sagt. Also keine Kollision mehr stattfindet. Der Kollisionscheck passiert dabei mit allen Kreisen, die pos_fix = TRUE haben, also schon im Weg liegen ;-)

Wenn keine Kollision mehr stattfindet, du also einen freien Platz gefunden hast, setzt du pos_fix = TRUE und springst zum nächsten Kreis.

Sollte so funktionieren, bitte bescheid sagen, wenn ich irgendwo schief gedacht hab :-)

MfG
Carsten
__________________
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:12:19 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt