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

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

1

16.12.2005, 13:43

Frage bezüglich Übungsaufgabe 1 aus Kapitel 2 (Vektoren)

Also langsam glaub ich mir fehlen doch noch Grundlagen, ich bin trotzdem mal so dreist zu fragen ...

1. Die max Länge der Vektoren soll 10 betragen. Ich muss ergo 3 Werte einsetzen die jeder mit sich selbst malgenommen und dann alle zusammenaddiert und dann die Summe dieser Wurzel max 10 ergeben. Oke, das klingt scheisse, ich schreibs mal als "Formel".

Wurzel aus (a²)+(b²)+(c²) kleinergleich 10

Wie komm ich an die Werte dafür? Ich hab momentan 4,6,7 eingesetzt, das ist zwar n Tick größer als 10 aber immerhin n Näherungswert.

2. Die Summe von 5000 Vektoren soll durch 5000 dividiert werden. Verständnisfrage:
Geh ich recht in der Annahme dass das so vonstatten gehen sollte?
a(Summe aus 5000 zufälligen Vektoren für a),b(siehe a),c(siehe a) / 5000,5000,5000?

Wenn ja, wie mach ich das dann? mein Code

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
    int i = 0;

    while(i < 5000)
    {
        V5000 = V5000 + tbFloatRandom(0,4),tbFloatRandom(0,6),tbFloatRandom(0,7);
        i++;
    }
    tbWriteVector3ToLog(V5000);

    V5000 /= 5000,5000,5000;

    tbWriteVector3ToLog(V5000);


spuckt Werte aus die ziemlich weit von einem Nullvektor entfernt sind ...

Ich glaub ich sollte mich wirklich nochmal mit einigen grundsätzlicheren Sachen beschäftigen aber naja, ich freue mich über jede Antwort.

Achja ...
Gibt es sowas wie eine Online Referenz für die TriBase Engine und deren Funktionen? Im Buch ist das ja immer klasse aufgelistet, nur dauert das suchen mit der Zeit recht lange ...

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

2

16.12.2005, 14:28

also die Länge eines Vektors ist der Abstand zum Betrachter:

C-/C++-Quelltext

1
2
3
4
5
6
    tbVector3 vDummy[5000]; //Array mit 5000 3dVektoren

    for (int i = 0; i < 5000; i++)
    {
        vDummy[i] = tbVector3Random() * tbFloatRandom(0.0f,10.0f); //Ein Vektor mit zufälliger Richtung wir dmit einem Wert zwischen 0 und 10 multipliziert und wie man im Logbuch sehen kann ist die Länge nie über 5000 groß

        tbWriteVector3ToLog(vDummy[i]);
    }

Easy going
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

3

16.12.2005, 14:34

lol geil :-D

Vieeel einfacher, tausend Dank =)

Mich wundert nur warum dein i < 500 is :huhu:

Edit:
Zu früh gefreut ..?

Wenn ich die 5000 Vektoren durch 5000 teile erhalte ich immer noch keinen Wert nahe am Nullvektor. Mein Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
    tbVector3 V5000;
    int i = 0;

    while(i < 5000)
    {
        V5000 = V5000 + tbVector3Random() * tbFloatRandom(0.0f,10.0f);
        i++;
    }
    tbWriteVector3ToLog(V5000);

    V5000 /= tbVector3(5000.0f,5000.0f,5000.0f);

    tbWriteVector3ToLog(V5000);

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

4

16.12.2005, 14:42

sry 0 vergessen
Bei mir kommt das raus: 3D-Vektor: x = -0.291, y = -0.277, z = -0.300, Länge = 0.501... ist doch nahe am NullVektor!
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

5

16.12.2005, 14:43

steht bei dir sowas?:
3D-Vektor: x = -1.#QO, y = -1.#QO, z = -1.#QO, Länge = -1.#QO
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

6

16.12.2005, 15:01

3D-Vektor: x = -21475.205, y = -21475.012, z = -21475.018, Länge = 37195.926

Du bist definitiv näher dran als ich ...

Zitat

steht bei dir sowas?:
3D-Vektor: x = -1.#QO, y = -1.#QO, z = -1.#QO, Länge = -1.#QO

Weder im Log, noch im Source ...

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

7

16.12.2005, 15:12

Fehler gefunden:

C-/C++-Quelltext

1
V5000 /= tbVector3(5000.0f,5000.0f,5000.0f);

musst du ändern:

C-/C++-Quelltext

1
V5000 /= 5000;

so funktioniert dein Code zumindest bei mir....
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

8

16.12.2005, 15:25

Argh, dann ist es ja doch so einfach ...

Hui, schwere Geburt aber Aufgabe 1 gelöst, DankeDanke :top:

Glaub ja nicht das die anderen Aufgaben leichter werden ...

Achja, nochwas:

Bei mir ist das ein wenig komisch mit allen Random Funktionen. Weiss ja nich ob das stimmt aber ich erhalte am Ende dieses Programms IMMER exakt einen Nullvektor, da kann ja wohl nich wirklich von Zufall die rede sein oder?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

9

16.12.2005, 16:54

Schonmal an die gausche Verteilung gedacht? ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

10

16.12.2005, 17:01

Sagt mir leider nichts ...

Aber auch wenn ich Schleifet mit tbFloatRandom einsetze, also nur Floats fülle, krieg ich x mal den gleichen Wert. Ist das im Sinne des Erfinders? Soweit ich weiss holt tbFloatRandom doch die aktuelle CPU Zeit, geschieht das NICHT bei jedem Aufruf? Anders könnte ich mir das nich erklären.

Und um nochmal auf den Anfang zurückzukommen ...

Gausche Verteilung? Oder Gaussche Verteilung? Ist auch egal, Google liefert dazu ne Menge Schlagworte im medizinischen bzw psychologischen Bereich (nach, zugegebenermaßen. nur oberflächlicher Sichtung) und Wikipedia kennt das garnich.

Hast du n Link da der das erklärt?

Werbeanzeige