Freigeben über


Matrix-Struktur

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Beschreibt und bearbeitet eine Matrix.

Namespace:  Microsoft.WindowsMobile.DirectX
Assembly:  Microsoft.WindowsMobile.DirectX (in Microsoft.WindowsMobile.DirectX.dll)

Syntax

'Declaration
Public Structure Matrix
'Usage
Dim instance As Matrix
public struct Matrix
public value class Matrix
[<SealedAttribute>]
type Matrix =  struct end

Hinweise

Diese Struktur stellt eine 4 × 4-Matrix von Gleitkommazahlen mit einfacher Genauigkeit dar.Die Felder dieser Struktur sind die Bezeichnung mit der Zeile Nummer dann zunächst die Nummer der Spalte.

In Microsoft Windows Mobile Direct3D kann nicht im M34--Element einer Projektionsmatrix eine negative Zahl sein.Wenn eine Anwendung einen negativen Wert an dieser Stelle verwenden muss, sollten stattdessen die gesamte Projektionsmatrix mit-1 skaliert werden.

Beispiele

Das folgende Beispiel veranschaulicht eine Struktur Matrix verwenden.

' This code example is from the Direct3D Mobile Matrices Sample' in the .NET Compact Framework Samples in the SDK.PrivateSub SetupMatrices()
    ' For the world matrix, rotate the object about the y-axis.    ' Set up the rotation matrix to generate one full rotation (2*PI radians)     ' every 1000 ms. To avoid the loss of precision inherent in very high     ' floating-point numbers, the system time is modulated by the rotation     ' period before conversion to a radian angle.Dim iTime AsInteger = Environment.TickCount Mod 1000
    Dim fAngle AsSingle = iTime * (2.0F * System.Convert.ToSingle(Math.PI)) / 1000.0F
    device.Transform.World = Matrix.RotationY(fAngle)
    ' Set up the view matrix. A view matrix can be defined given an eye point,    ' a point to lookat, and a direction indicating which way is up. Here, you set    ' the eye five units back along the z-axis and up three units, look at the    ' origin, and define "up" to be in the y-direction.
    device.Transform.View = Matrix.LookAtLH(New Vector3(0.0F, 3.0F, -5.0F), New Vector3(0.0F, 0.0F, 0.0F), New Vector3(0.0F, 1.0F, 0.0F))
    ' For the projection matrix, set up a perspective transform (which    ' transforms geometry from 3-D view space to 2-D viewport space, with    ' a perspective divide making objects smaller in the distance). To build    ' a perspective transform, you need the field of view (1/4 PI is common),    ' the aspect ratio, and the near and far clipping planes (which define    ' the distances at which geometry should no longer be rendered).
    device.Transform.Projection = Matrix.PerspectiveFovLH(System.Convert.ToSingle(Math.PI) / 4, 1.0F, 1.0F, 100.0F)
EndSub
// This code example is from the Direct3D Mobile Matrices Sample// in the .NET Compact Framework Samples in the SDK.privatevoid SetupMatrices()
{
    // For the world matrix, rotate the object about the y-axis.// Set up the rotation matrix to generate one full rotation (2*PI radians)// every 1000 ms. To avoid the loss of precision inherent in very high// floating-point numbers, the system time is modulated by the rotation// period before conversion to a radian angle.int iTime = Environment.TickCount % 1000;
    float fAngle = iTime * (2.0f * (float)Math.PI) / 1000.0f;
    device.Transform.World = Matrix.RotationY(fAngle);
    // Set up the view matrix. A view matrix can be defined given an eye point,// a point to look at, and a direction indicating which way is up. Here, you set// the eye five units back along the z-axis and up three units, look at the// origin, and define "up" to be in the y-direction.
    device.Transform.View = Matrix.LookAtLH(new Vector3(0.0f, 3.0f, -5.0f), new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f));
    // For the projection matrix, set up a perspective transform (which// transforms geometry from 3-D view space to 2-D viewport space, with// a perspective divide making objects smaller in the distance). To build// a perspective transform, you need the field of view (1/4 PI is common),// the aspect ratio, and the near and far clipping planes (which define// the distances at which geometry should no longer be rendered).
    device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, 1.0f, 1.0f, 100.0f);
}

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC

Die .NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET framework.

Versionsinformationen

.NET Compact Framework

Unterstützt in: 3.5, 2.0

Siehe auch

Referenz

Member Matrix

Microsoft.WindowsMobile.DirectX-Namespace

Weitere Ressourcen

Mobile Direct3D-Programmierung in .NET Compact Framework