Suchergebnisse

Suchergebnisse 1-6 von insgesamt 6.

  • Benutzer-Avatarbild

    Hi schau' dir mal folgende Artikel durch: de.wikipedia.org/wiki/Homogene_Koordinaten de.wikipedia.org/wiki/Roll-Nick-Gier-Winkel Bei den homogenen Koordinaten verwendet man statt einem 3-dimensionalen Vektor (x, y, z) einen 4-dimensionalen (x, y, z, 1). So funktioniert auch eine Translation, da die Komponenten m14, m24, m34 dann einfach eine Verschiebung erzeugen. Wenn du nicht weißt, wie man mit einer Matrix rechnet, kannst du dir auch den Wikipediaartikel Matrix noch ansehen. Wenn's dir dann n…

  • Benutzer-Avatarbild

    Weiß nicht, ob das wirklich nötig ist. Alles, was man machen muss, ist, eine 4x4-Matrix mit Single (float) oder Double zu implementieren (Double ist ineffizienter). Zusätzlich halt dann Addition und Subtraktion, die sind komponentenweise und Multiplikation VB.NET-Quellcode (9 Zeilen) oder so ähnlich (lässt sich übrigens in C# mit dem StructLayoutAttribute und unsafe schön lösen, indem man einfach ein Feld als [ic=c]private fixed float _buffer[16];//... {/ic] deklariert, das ist dann quasi ein Ze…

  • Benutzer-Avatarbild

    Einfach x*x + y * y + z * z vergleichen und vom größten die Wurzel berechnen und zurückgeben, da ja gilt sqrt(x1) <= sqrt(x2) ==> x1^2 <= x2^2 Aso, nimm doch einfach ein RectangleF und schau', ob die Punkte innerhalb liegen (Contains) oder was meinst du? Gruß ~blaze~

  • Benutzer-Avatarbild

    Wurzeln sind im Vgl. zu Additionen und Multiplikationen extrem teuer. Somit einfach die Wurzeln möglichst nur dann berechnen, wenn sie benötigt werden. Die größte Distanz (abgesehen von der Perspektive, da musst du wohl noch durch d teilen) ergibt sich eben durch den Pythagoras. Vergleiche statt den Wurzeln einfach die Quadrate selber und ziehe dann vom größten die Wurzel. Dann hast du es dahingehend ausreichend optimiert. Gleitkommazahlen sind bei der vermuteten Anzahl an Würfeln sowieso proble…

  • Benutzer-Avatarbild

    Du müsstest demnach die Matrix quasi invertieren. Invertieren kannst du sie über ein lineares Gleichungssystem (das hatte Artentus in einem Thema schon mal gefragt: Probleme beim Lösen von linearem Gleichungssystem). Der Punkt muss nämlich nicht zwangsweise bei (120, 120, 50) liegen, sondern kann wegen der Projektionsmatrix auch woanders liegen - wäre zumindest bei der perspektivischen Projektion so, denk ich mal? Ansonsten wird eine Verschiebung (Translation) eben in den Matrix-Komponenten m41,…

  • Benutzer-Avatarbild

    Ich denke mal, das kommt auf die Art an, mit der man Vektoren betrachtet. Vektoren kannst du entweder als Zeilen- oder Spaltenvektoren betrachten. Wenn du dir die Regeln der Matrixmultiplikation dann anschaust, sind das zwei verschiedene Operationen. Ich denk' zumindest, dass das daher rührt. Alles Gute btw. Gruß ~blaze~