class{ union{ struct{ wo liegt hier der Vorteil ?
-
otze schrieb:
imho dient es wahrscheinlich nur der übersichtlichkeit für den programmierer, da er nämlich im kopf immer umrechnen müsste,wenn er einen wert der matrix abfragen will,falls er das array benutzt(matritzen fangen bei 1 an, arrays bei 0, das kann manchmal ne interessante fehlerquelle sein;))
Ach quatsch. Wer so blöd ist und nicht umrechnen kann (bzw. eine Zugriffsfunktion schreiben kann die das "umrechnen" erledigt) sollte keine Matrizenoperationen von einem Programm erledigen lassen. Ich sehe jedenfalls keine Notwendigkeit für diesen zusammengehackten Mist. Kann höchstens sein, dass man bei Microsoft früher noch nicht so gute Debugger hatte und um in ein 2D-Array zu leuchten so rumhacken musste.
-
Hi,
der Grund ist denk ich ganz einfach, dass DirectX möglichst einfach zu bedienen sein sollen. Jetzt speichert aber jeder Programmierer die Matrizen am liebsten anders: Der eine als ein zweidimensionales Skalararray, der andere als ein eindimensionales Vektorarray und wieder ein anderer halt als einzelne Werte/Vektoren. Deswegen hat DirectX gleich zwei dieser Varianten von Haus aus drin, dem Compiler ist es ja egal wie man zugreift, die Adresse ist die gleiche.
Es ist halt nur eine Hilfe für den Programmierer.
ChrisM