Mega Code Archive

 
Categories / C# / WPF
 

Matrix3D RotateAtPrepend

<Window x:Class="WpfApplication1.Matrix3DTransforms"   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   Title="Matrix3D Transformations" Height="450" Width="300">   <StackPanel>     <TextBlock Margin="10,10,5,5" Text="Original Matrix:" />     <TextBlock Name="tbOriginal" Margin="20,0,5,5" />     <TextBlock Margin="10,0,5,5" Text="Scale:" />     <TextBlock Name="tbResult" Margin="20,0,5,5" />   </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Media; using System.Windows.Media.Media3D; namespace WpfApplication1 {     public partial class Matrix3DTransforms : Window     {         public Matrix3DTransforms()         {             InitializeComponent();             Matrix3D M = new Matrix3D(1, 2, 3, 4,                                       2, 1, 0, 0,                                       0, 0, 1, 0,                                       1, 2, 3, 1);             tbOriginal.Text = "(" + M.ToString() + ")";             //Translation:              M.RotateAtPrepend(new Quaternion(new Vector3D(1, 2, 3), 45),new Point3D(10, 20, 30));             tbResult.Text = "(" + M.ToString() + ")";         }     } }