Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

11

14.08.2006, 00:07

CW_Kovok & all
tbVector3Random() liefert einen normalisierten Vector zurück :roll:
d.h. der Vector hat immer die Länge 1 und variiert in der Richtung. Wenn man jetzt stupide mit 10 multipliziert erhält man 5000 Vectoren der Länge 10 und nicht der Lange 0-10. Deswegen soll man noch tbFloatRandom() verwenden.

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

12

14.08.2006, 07:43

das ist mir klar, nur wolltre ich darstellen, wie man einen Vektor mit einer Bestimmten Länge aus einem anderen Vektor erzeugt. Am ende läuft es genau auf deinen Weg hinaus
Was es alles gibt, das ich nich brauche - Aristoteles

13

14.08.2006, 13:01

ok, dh für meinen fall könnte man das so machen?

ist trocken codiert, hab grad keine ide/compiler zu hand

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tbvector3 Result;

for(int i=0; i<5000; i++)
{
 tbVector3 temp = tbVector3Random();
float f = tbFloatRandom(1.0f, 10.0f);

temp *= f;

Result += temp;
}

Result /= 5000;  // Da sollte dann ein Ergebniss nahe dem Nullvektor rauskommen ?!


tbVector3WriteToLog(Result);

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

14

14.08.2006, 14:19

Zitat

mit einer zufallslänge zwischen 0 und 10


Zitat

ok, dh für meinen fall könnte man das so machen?


Fast so müsste es gehen^^

15

14.08.2006, 21:19

Zitat von »"YetAnotherNoob"«

ok, dh für meinen fall könnte man das so machen?

ist trocken codiert, hab grad keine ide/compiler zu hand

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tbvector3 Result;

for(int i=0; i<5000; i++)
{
 tbVector3 temp = tbVector3Random();
float f = tbFloatRandom(1.0f, 10.0f);

temp *= f;

Result += temp;
}

Result /= 5000;  // Da sollte dann ein Ergebniss nahe dem Nullvektor rauskommen ?!


tbVector3WriteToLog(Result);


hm, also den Nullvektor (0,0,0) krieg ich trotzdem nicht raus....nichtmal annähernd.

Mein Ergebnis ist jetzt grade "3D-Vektor: x = -21475.084, y = -21475.025, z = -21475.096, Länge = 37195.910" gewesen.......scheint mir etws weit vom Nullvektor entfernt zu sein.

Was mach ich falsch?

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

16

14.08.2006, 21:39

Irgendwie haben x,y,z alle nen ähnlichen Wert^^

Schonmal den Debugger befragt?
Es sollte eigentlich selbst bei extremster Unwahrscheinlichkeit maximal Werte um die 10 rum rauskommen, da ein einzelner Vector maximal die Größe (für einen der Werte x, y, z) {10, 0, 0} haben kann.

Werbeanzeige