Computergrafik
Linmath-Spezielle Matrizen
← Linmath-Daten Rechnen | ● | Linmath-Beispiele →
Entsprechende alte hier angegebene OpenGL-Befehle googlen, die man-Pages enthalten eine Menge nützlicher Informationen!
Transformationen / Modellierung
- Translation:
Multipliziert Translationsmatrix rechts anm_left
(es gibt auchmat4x4_translate()
, die erstellt lediglich eine Translationsmatrix, aber verknüpft sie nicht mit einer bereits bestehenden)
Siehe auch glTranslate()mat4x4_trans (m_res, m_left, x, y, z); - Allgemeine Rotation:
Multipliziere Rotation-Matrix rechts anm_left
Winkel in Radiant, d.h.M_PI*.5
entspricht $90^\circ$
Siehe auch glRotate()mat4x4_rotate (m_res, m_left, x, y, z, winkel); - Rotation um X (ditto für Y, Z):
mat4x4_rotate_X (m_res, m_left, winkel);
- Skalierung:
Multipliziert Skalierungsmatrix rechts anm_left
(Achtung: die auch nutzbare Funktionmat4x4_scale()
multipliziert alle Elemente mit dem Faktor, ist daher meist nicht zu gebrauchen)
Siehe auch glScale()mat4x4_scale_aniso (m_res, m_left, x, y, z);
View-Transformation
- Kamera-Transformation:
Siehe auch gluLookAt()mat4x4_look_at (m_res, vec3 eye, vec3 center, vec3 up);
eye
,center
undup
sind 3D-Vektoren (vec3
)!
Projektionen
- Frustum für eine orthographische Projektion (ohne perspektivische Verkürzung):
Siehe auch glOrtho()mat4x4_ortho (m_res, l, r, b, t, n, f); - Frustum gemäß Projektionsmatrix:
Siehe auch glFrustum()mat4x4_frustum (m_res, l, r, b, t, n, f); - Frustum entsprechend den alternativen Parametern (beschrieben in ViewKamera):
Siehe auch gluPerspective() (Achtung: hier fovy in Radiant, nicht Grad)mat4x4_perspective (m_res, fovy, aspect, n, f);
Hilfsfunktionen / Daten
- Matrix-Ausgabe:
mat4x4_print (string, m_res);
- Identitäts-Matrix:
mat4x4_id
← Linmath-Daten Rechnen | ● | Linmath-Beispiele →