DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Viewport3Dを使用してViewBoxを回転

  • 題名: Viewport3Dを使用してViewBoxを回転
  • 著者: Siva
  • 日時: 2010/02/02 14:55:02
  • ID: 26365
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[VistaSP1, WPF+C#, .NET Framework3.5]
分類:[.NET]

お世話になります。
現在VS2008を使用してWPFにて開発しております。

Viewport3Dを使用して画像をX/Y/Z軸に沿って回転させることはできるのですが、
この画像の変わりにViewBoxでグループ化されたPathをコントロールすることは
可能でしょうか?

一応現在のソースを記載しますが、結果が同じであれば違う方法でも構いません。

<Viewport3D x:Name="myViewport" Margin="100">
    <Viewport3D.Camera>
        <PerspectiveCamera x:Name="myCamera" FieldOfView="30" Position="0,0,10" />
    </Viewport3D.Camera>
    <ModelVisual3D>
        <ModelVisual3D.Content>
            <DirectionalLight Color="White" Direction="0,0,-1" />
        </ModelVisual3D.Content>
    </ModelVisual3D>
    <ModelVisual3D x:Name="myModel">
        <ModelVisual3D>
            <ModelVisual3D.Content>
                <GeometryModel3D>
                    <GeometryModel3D.Geometry>
                        <MeshGeometry3D Normals="0,0,1 0,0,1 0,0,1 0,0,1" Positions="-2,-2,0 2,-2,0 -2,2,0 2,2,0" TextureCoordinates="0,1 1,1 0,0 1,0" TriangleIndices="0 1 2 1 3 2" />
                    </GeometryModel3D.Geometry>
<!-- ↓この部分をViewBoxに変更したい -->
                    <GeometryModel3D.Material>
                        <DiffuseMaterial>
                            <DiffuseMaterial.Brush>
                                <ImageBrush ImageSource="/XXX;component/Test.jpg"/>
                            </DiffuseMaterial.Brush>
                        </DiffuseMaterial>
                    </GeometryModel3D.Material>
<!-- ↑この部分をViewBoxに変更したい -->
                    <GeometryModel3D.Transform>
                        <Transform3DGroup>
                            <RotateTransform3D>
                                <RotateTransform3D.Rotation>
                                    <AxisAngleRotation3D x:Name="myAxisZ" Angle="0" Axis="0,0,1" />
                                </RotateTransform3D.Rotation>
                            </RotateTransform3D>
                            <RotateTransform3D>
                                <RotateTransform3D.Rotation>
                                    <AxisAngleRotation3D x:Name="myAxisY" Angle="0" Axis="0,1,0" />
                                </RotateTransform3D.Rotation>
                            </RotateTransform3D>
                            <RotateTransform3D>
                                <RotateTransform3D.Rotation>
                                    <AxisAngleRotation3D x:Name="myAxisX" Angle="0" Axis="1,0,0" />
                                </RotateTransform3D.Rotation>
                            </RotateTransform3D>
                            <TranslateTransform3D x:Name="myTransform" OffsetX="0" OffsetY="0" OffsetZ="0" />
                        </Transform3DGroup>
                    </GeometryModel3D.Transform>
                </GeometryModel3D>
            </ModelVisual3D.Content>
        </ModelVisual3D>
    </ModelVisual3D>
</Viewport3D>

DOBON.NET | プログラミング道 | プログラミング掲示板