example WPF 3Angle

AXIS 別に Angle を変更する
Transform3DGroup を三重定義して AXIS 毎にアングルを変更する。

VS2010



<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Wpf-AX-1111" Height="500" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="480*" />
<ColumnDefinition Width="298*" />
</Grid.ColumnDefinitions>
<Viewbox x:Name="Viewbox_AX1112" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006" xmlns:c="http://schemas.openxmlformats.org/markup-compatibility/2006" c:Ignorable="d">
<Viewport3D x:Name="Viewport3D_AX1112" Width="400" Height="300">
<Viewport3D.Resources>
<ResourceDictionary>
<MaterialGroup x:Key="Material_AX1112_mat1" >
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<SolidColorBrush Color="#ff5454" Opacity="1.000000"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
<MaterialGroup x:Key="Material_AX1112_mat2" >
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<SolidColorBrush Color="#666bff" Opacity="1.000000"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
<MaterialGroup x:Key="Material_AX1112_mat3" >
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<SolidColorBrush Color="#74ff81" Opacity="1.000000"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
<MaterialGroup x:Key="Material_AX1112_mat4" >
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<SolidColorBrush Color="#f8f8f8" Opacity="1.000000"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
<Transform3DGroup x:Key="Transform_Character_AX1112_Character_0" >
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
<ScaleTransform3D ScaleX="1" ScaleY="1" ScaleZ="1"/>

<RotateTransform3D CenterX="0" CenterY="0" CenterZ="0">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D
Angle="{Binding ElementName=SliderX,Path=Value}"
Axis="1 0 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<RotateTransform3D CenterX="0" CenterY="0" CenterZ="0">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D
Angle="{Binding ElementName=SliderY,Path=Value}"
Axis="0 1 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<RotateTransform3D CenterX="0" CenterY="0" CenterZ="0">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D
Angle="{Binding ElementName=SliderZ,Path=Value}"
Axis="0 0 1"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>

<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
</Transform3DGroup>
<Transform3DGroup x:Key="Transform_Model_AX1112_obj1" >
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
<ScaleTransform3D CenterX="0.000000" CenterY="0.000000" CenterZ="0.000000" ScaleX="1" ScaleY="1" ScaleZ="1"/>
<RotateTransform3D CenterX="0.000000" CenterY="0.000000" CenterZ="0.000000">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="0" Axis="0 1 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
</Transform3DGroup>
<Transform3DGroup x:Key="Transform_Model_AX1112_obj2" >
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
<ScaleTransform3D CenterX="0.000000" CenterY="0.000000" CenterZ="0.000000" ScaleX="1" ScaleY="1" ScaleZ="1"/>
<RotateTransform3D CenterX="0.000000" CenterY="0.000000" CenterZ="0.000000">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="0" Axis="0 1 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
</Transform3DGroup>
<Transform3DGroup x:Key="Transform_Model_AX1112_obj3" >
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
<ScaleTransform3D CenterX="0.000000" CenterY="0.000000" CenterZ="0.000000" ScaleX="1" ScaleY="1" ScaleZ="1"/>
<RotateTransform3D CenterX="0.000000" CenterY="0.000000" CenterZ="0.000000">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="0" Axis="0 1 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
</Transform3DGroup>
<MeshGeometry3D x:Key="Geometry_AX1112_obj1_0"
TriangleIndices="2,1,0 3,2,0 6,5,4 7,6,4 "
Positions="100.000000,100.000000,100.000000 100.000000,100.000000,-100.000000 100.000000,-100.000000,-100.000000 100.000000,-100.000000,100.000000 -100.000000,100.000000,-100.000000 -100.000000,100.000000,100.000000 -100.000000,-100.000000,100.000000 -100.000000,-100.000000,-100.000000 "
/>
<MeshGeometry3D x:Key="Geometry_AX1112_obj1_1"
TriangleIndices="2,1,0 3,2,0 6,5,4 7,6,4 "
Positions="-100.000000,100.000000,100.000000 100.000000,100.000000,100.000000 100.000000,-100.000000,100.000000 -100.000000,-100.000000,100.000000 100.000000,100.000000,-100.000000 -100.000000,100.000000,-100.000000 -100.000000,-100.000000,-100.000000 100.000000,-100.000000,-100.000000 "
/>
<MeshGeometry3D x:Key="Geometry_AX1112_obj1_2"
TriangleIndices="2,1,0 3,2,0 6,5,4 7,6,4 "
Positions="-100.000000,100.000000,-100.000000 100.000000,100.000000,-100.000000 100.000000,100.000000,100.000000 -100.000000,100.000000,100.000000 -100.000000,-100.000000,100.000000 100.000000,-100.000000,100.000000 100.000000,-100.000000,-100.000000 -100.000000,-100.000000,-100.000000 "
/>
<MeshGeometry3D x:Key="Geometry_AX1112_obj1_3"
TriangleIndices="2,1,0 3,1,2 4,1,3 5,1,4 6,1,5 7,1,6 8,1,7 0,1,8 2,0,9 3,2,9 4,3,9 5,4,9 6,5,9 7,6,9 8,7,9 0,8,9 "
Positions="0.000000,-156.009995,50.200001 0.000000,202.490005,0.000000 35.496799,-156.009995,35.496799 50.200001,-156.009995,-0.000000 35.496799,-156.009995,-35.496799 -0.000000,-156.009995,-50.200001 -35.496799,-156.009995,-35.496799 -50.200001,-156.009995,0.000000 -35.496799,-156.009995,35.496799 0.000000,-156.009995,0.000000 "
/>
<MeshGeometry3D x:Key="Geometry_AX1112_obj2_3"
TriangleIndices="2,1,0 3,1,2 4,1,3 5,1,4 6,1,5 7,1,6 8,1,7 0,1,8 2,0,9 3,2,9 4,3,9 5,4,9 6,5,9 7,6,9 8,7,9 0,8,9 "
Positions="0.000000,-49.247601,-179.250000 0.000000,0.952500,179.250000 35.496799,-34.544300,-179.250000 50.200001,0.952400,-179.250000 35.496799,36.449200,-179.250000 -0.000000,51.152401,-179.250000 -35.496799,36.449200,-179.250000 -50.200001,0.952400,-179.250000 -35.496799,-34.544300,-179.250000 0.000000,0.952400,-179.250000 "
/>
<MeshGeometry3D x:Key="Geometry_AX1112_obj3_3"
TriangleIndices="2,1,0 3,1,2 4,1,3 5,1,4 6,1,5 7,1,6 8,1,7 0,1,8 2,0,9 3,2,9 4,3,9 5,4,9 6,5,9 7,6,9 8,7,9 0,8,9 "
Positions="-179.250000,-49.247601,-0.000000 179.250000,0.952500,0.000000 -179.250000,-34.544300,-35.496799 -179.250000,0.952400,-50.200001 -179.250000,36.449200,-35.496799 -179.250000,51.152401,-0.000000 -179.250000,36.449200,35.496799 -179.250000,0.952400,50.200001 -179.250000,-34.544300,35.496799 -179.250000,0.952400,-0.000000 "
/>
</ResourceDictionary>
</Viewport3D.Resources>

<Viewport3D.Camera>
<PerspectiveCamera x:Name="Camera_AX1112" Position="1104.071411,411.259094,1066.189331" LookDirection="-0.694829,-0.258819,-0.670988" UpDirection="0.000000,1.000000,0.000000" FieldOfView="20.000000" NearPlaneDistance="1" FarPlaneDistance="10000" />
</Viewport3D.Camera>

<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup>
<AmbientLight Color="#646464" />
<DirectionalLight x:Name="Light_AX1112" Color="#FFFFFF" Direction="-0.694829,-0.258819,-0.670988" />
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D x:Name="Character_AX1112_Character_0" Transform="{StaticResource Transform_Character_AX1112_Character_0}">
<ModelVisual3D.Content>
<Model3DGroup>
<Model3DGroup x:Name="Model_AX1112_obj1" Transform="{StaticResource Transform_Model_AX1112_obj1}">
<GeometryModel3D x:Name="Geometry_Model_AX1112_obj1_0" Geometry="{StaticResource Geometry_AX1112_obj1_0}" Material="{StaticResource Material_AX1112_mat1}"/>
<GeometryModel3D x:Name="Geometry_Model_AX1112_obj1_1" Geometry="{StaticResource Geometry_AX1112_obj1_1}" Material="{StaticResource Material_AX1112_mat2}"/>
<GeometryModel3D x:Name="Geometry_Model_AX1112_obj1_2" Geometry="{StaticResource Geometry_AX1112_obj1_2}" Material="{StaticResource Material_AX1112_mat3}"/>
<GeometryModel3D x:Name="Geometry_Model_AX1112_obj1_3" Geometry="{StaticResource Geometry_AX1112_obj1_3}" Material="{StaticResource Material_AX1112_mat4}"/>
</Model3DGroup>
<Model3DGroup x:Name="Model_AX1112_obj2" Transform="{StaticResource Transform_Model_AX1112_obj2}">
<GeometryModel3D x:Name="Geometry_Model_AX1112_obj2_3" Geometry="{StaticResource Geometry_AX1112_obj2_3}" Material="{StaticResource Material_AX1112_mat4}"/>
</Model3DGroup>
<Model3DGroup x:Name="Model_AX1112_obj3" Transform="{StaticResource Transform_Model_AX1112_obj3}">
<GeometryModel3D x:Name="Geometry_Model_AX1112_obj3_3" Geometry="{StaticResource Geometry_AX1112_obj3_3}" Material="{StaticResource Material_AX1112_mat4}"/>
</Model3DGroup>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>

<Viewbox.Resources>
<Storyboard Duration="Forever" FillBehavior="HoldEnd" BeginTime="0:0:0" x:Key="Animation_AX1112_Animation_0">
</Storyboard>
</Viewbox.Resources>

<Viewbox.Triggers>
<EventTrigger RoutedEvent="Viewport3D.Loaded">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource Animation_AX1112_Animation_0}" />
</EventTrigger.Actions>
</EventTrigger>
</Viewbox.Triggers>
</Viewbox>

<Slider Height="24" HorizontalAlignment="Left" Margin="142,207,0,0" Name="SliderX" VerticalAlignment="Top" Width="145" Grid.Column="1" Maximum="360">
<Slider.RenderTransform>
<RotateTransform CenterX="45" CenterY="45" Angle="10"/>
</Slider.RenderTransform>
</Slider>
<Slider Height="24" HorizontalAlignment="Left" Margin="26,166,0,0" Name="SliderZ" VerticalAlignment="Top" Width="145" Grid.Column="1" Maximum="360">
<Slider.RenderTransform>
<RotateTransform Angle="140" CenterX="45" CenterY="45" />
</Slider.RenderTransform>
</Slider>
<Slider Height="24" HorizontalAlignment="Left" Margin="129,104,0,0" Name="SliderY" VerticalAlignment="Top" Width="145" Grid.Column="1" Maximum="360">
<Slider.RenderTransform>
<RotateTransform Angle="270" CenterX="45" CenterY="45" />
</Slider.RenderTransform>
</Slider>
<Label Content="{Binding ElementName=SliderY,Path=Value}" Height="25" HorizontalAlignment="Left" Margin="163,57,0,0" Name="LabelY" VerticalAlignment="Top" Width="84" Grid.Column="1" Background="#FFC9F5C9" />
<Label Content="{Binding ElementName=SliderZ,Path=Value}" Height="25" HorizontalAlignment="Left" Margin="19,319,0,0" Name="LabelZ" VerticalAlignment="Top" Width="84" Grid.Column="1" Background="#FFC3C3F5" />
<Label Content="{Binding ElementName=SliderX,Path=Value}" Height="25" HorizontalAlignment="Left" Margin="202,256,0,0" Name="Label3" VerticalAlignment="Top" Width="84" Grid.Column="1" Background="#FFF88383" />
</Grid>
</Window>



AX

TYKYUNC index