Objekte nur ausserhalb einer Kugel positionieren?
Übersicht

HybridBetreff: Objekte nur ausserhalb einer Kugel positionieren? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mal ein kleines Testprogramm gebastelt, welches Sterne erzeugt und zufällig im Raum positioniert. Leider habe ich überhaupt keine Ahnung, wie man es programmiert, dass die Sterne nur ausserhalb einer Kugel gesetzt werden, im Moment geschieht dies nur innerhalb eines virtuellen Kubus. Hat jemand eine Idee wie man dass umschreiben kann?
Screenshot: ![]() Source mit Grafiken: http://www.extrasolar.de/bb/3dtest.zip (10KB) Steuerung: mit den Pfeiltasten und der Maus, zusätzlich rechte Maustaste gedrückt gehalten verzehnfacht die Bewegungsgeschwindigkeit. Gruß Hybrid |
||
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jede Stelle der Kugelfläche hat vom Kugelmittelpunkt die gleiche Entfernung, nämlich den Kugelradius. Folgendes: du hast die Koordinate des Kugelmittelpunkts und setzt die Sterne nur, wenn der Abstand Kugelmitte <-> Stern größer als der Kugelradius ist. | ||
Hybrid |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok das hat soweit funktioniert, habe es mal so abgeändert:
BlitzBasic: [AUSKLAPPEN] ;Sterne laden / positionieren Und wie bekomme ich die Sterne genau auf den Radius der Kugel, also nicht kürzer aber auch nicht weiter? Da muss man doch bestimmt irgendwie mit Sinus/Cosinus arbeiten? Haben wir bestimmt mal in der Schule gelernt, habe ich aber offenbar verdrängt ![]() Gruß Hybrid |
||
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mathematisch gesehen kannst du die Punkte ganz einfach "bestimmen":
![]() ![]() ![]() (von wikipedia.de) Mir ist aber auch noch eine andere, einfache Methode eingefallen, folgendes: Du hast deinen Mittelpunkt, an diesem erstellst du deinen Stern. Nun erstellst du einen zufälligen Normalenvektor (drei mal RND(-1,1)) und richtest den Stern mit AlignToVector daran aus (Z-Achse). Das entspräche dann einer Zufallsrichtung, in die der Stern "schaut". Danach bewegst du dann den Stern um die Radiuslänge auf der Z-Achse, das wäre dann in die Zufallsrichtung. Ich hab dazu mal ein kleines Beispiel geschrieben (mit Zufallsfarben-Cubes ![]() BlitzBasic: [AUSKLAPPEN]
Kannst du ja mal bei deinem Programm probieren. ^^ |
||
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achja, ich würde auch nicht jedesmal LoadSprite nehmen, sondern jedes Sprite einmal laden und dann mit CopyEntity arbeiten. Sprich:
BlitzBasic: [AUSKLAPPEN]
Nur so als Anmerkung noch dazu. |
||
Hybrid |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh prima, das ist genau das was ich gemeint habe! Ich werde mal damit herumexperimentieren ![]() Vielen Dank nochmal, auch für den zweiten Tip, ich wollte das eh noch optimieren. Gruß Hybrid |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group