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
Zitat von »"BlazeX"«
- Ich halte aber nicht viel von diesen ellenlangen Formulierungen. Eine feste Form ist mir da lieber.
Zitat von »"BlazeX"«
- Das Winkelsymbol stellt eigentlich den griech. Buchstabe Alpha dar.
Zitat von »"BlazeX"«
- Mir ging es hier um die Multiplikationsreihenfolge. Das Reihenfolge beim Verketten von Rotationen ist die selbe, ja, aber eben nicht die Multiplikation. Ich verstehe hier dein Problem nicht.
Zitat von »"BlazeX"«
Mir kommt es auch nicht auf die exakte mathematische Definition an. Es muss funktionieren und das schnell. Alles andere wird erst wichtig, wenn es Probleme macht.
BTW nur vorbeugend: Ich hab eine 1 auf meine Facharbeit über komplexe Zahl bekommen, also versuch mich nicht mit Definitionen aufzuklären. Seit dieser Facharbeit halte ich diese mathematische Exaktheit für pure Umwege.
Zitat von »"Jonathan_Klein"«
Facharbeit ist halt Schule, da achtet keiner darauf, das irgendetwas formal oder exakt ist.
Es ist wohl ein Unterschied, ob man eine Einleitung für Programmierer oder für Mathematiker schreibt. Bei letzteren sollte alles exakt sein, bei ersteren reicht es, die fertigen Formeln hinzuknallen.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 |
m= Matrix::RotateZ(DegToRad(25)); m= m * Matrix::RotateX(DegToRad(-165)); m= m * Matrix::RotateY(DegToRad(123)); m= m * Matrix::RotateY(DegToRad(456)); m= m * Matrix::RotateAxis(Vector3(6, -5, -4).NormalizeSafe(), DegToRad(321)); m= m * Matrix::RotateAxis(Vector3(-8, -5, -3).NormalizeSafe(), DegToRad(-123)); m= m * Matrix::RotateZ(DegToRad(15)); m= m * Matrix::RotateAxis(Vector3(-3, 2.5, 2).NormalizeSafe(), DegToRad(-321)); m= m * Matrix::RotateAxis(Vector3(4, 2.5, 1.5).NormalizeSafe(), DegToRad(123)); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
q= Quaternion::CreateFromNormalAndAngle(Vector3(0, 0, 1), DegToRad(25)); q= Quaternion::CreateFromNormalAndAngle(Vector3(1, 0, 0), DegToRad(-165)) * q; q= Quaternion::CreateFromNormalAndAngle(Vector3(0, 1, 0), DegToRad(123)) * q; q= Quaternion::CreateFromNormalAndAngle(Vector3(0, 1, 0), DegToRad(456)) * q; q= Quaternion::CreateFromNormalAndAngle(Vector3(6, -5, -4).NormalizeSafe(), DegToRad(321)) * q; q= Quaternion::CreateFromNormalAndAngle(Vector3(-8, -5, -3).NormalizeSafe(), DegToRad(-123)) * q; q= Quaternion::CreateFromNormalAndAngle(Vector3(0, 0, 1), DegToRad(15)) * q; q= Quaternion::CreateFromNormalAndAngle(Vector3(-3, 2.5, 2).NormalizeSafe(), DegToRad(-321)) * q; q= Quaternion::CreateFromNormalAndAngle(Vector3(4, 2.5, 1.5).NormalizeSafe(), DegToRad(123)) * q; m= Matrix::RotateQuaternion(q); |
Zitat von »"BlazeX"«
Ja, das ist für Programmierer gedacht. Die Website heißt ja auch Spieleprogrammierer.de
Sicher ist für Mathematiker die Exaktheit bei der Formulierung wichtig. Programmierern ist die Wichtigkeit des Ergebnisses und die Performance wichtig.
Zitat von »"BlazeX"«
Bei Matrizen ist die Ausführungsreihenfolge gleich der Multiplikationsreihenfolge. [...] Ich würde schreiben: "mWorld= mScale * mRotate * mTranslation;"
Zitat von »"BlazeX"«
Und zum Alpha: Das hier ist meiner Meinung nach ein Alpha:
(Link)
Ich kenne ∝ als "ist proportional zu"-Zeichen, als Alternative zu ~. Alpha ist jedoch nah dran.Zitat von »"David_pb"«
Meiner Meinung nach ist das ein schlecht gerendertes Infinity-Zeichen... Aber wenn mans weiß...Zitat von »"BlazeX"«
Und zum Alpha: Das hier ist meiner Meinung nach ein Alpha:
(Link)
Werbeanzeige