Po kolejnej przerwie powracamy do kursu o WPF a konkretniej dokończenia fragmentu o grafice 3D.

Przekształcenia 3D

Dostępne mamy te same transformacje co w przypadku dwuwymiarowych grafik: TranslateTransform3D, ScaleTransform3D, RotateTransform3D, MatrixTransform3D oraz Transform3DGroup.

Jak ich użyć?

<ModelVisual3D>

    <ModelVisual3D.Transform>

        <x:Static Member=”Transform3D.Identity” />

    ModelVisual3D.Transform>

Tak więc po prostu tworzymy podrzędny tag o nazwie Transform, w którym będziemy definiować nasze przekształcenia. Dodatkowo widzimy jak możemy użyć przekształcenia tożsamościowego.

Myślę, że nad większością transformat nie ma co się rozpisywać. Dochodzi dodatkowo koordynata Z. (ScaleZ, OffsetZ, CenterZ). Ciekawy natomiast jest Obrót. Możemy go definiować za pomocą obrotu wokół osi (AxisAngleRotation3D) lub jako kwaternion (QuaternionRotation3D). Obrót definiujemy za pomocą:

<RotateTransform3D>

    <RotateTransform3D.Rotation>

        <AxisAngleRotation3D Angle=”40″ Axis=”0,1,0″ />

    RotateTransform3D.Rotation>

RotateTransform3D>

gdzie Axis definiujemy wokół, której osi obracamy. Z kwaternionem będzie tak:

<RotateTransform3D.Rotation>

    <QuaternionRotation3D Quaternion=”0.3,0.1,0,0.1″ />

RotateTransform3D.Rotation>

definiując odpowiednie wartości kwaternionu.

Na dziś tyle o przekształceniach 3D. W następnym wpisie będzie o świetle.