■ ScaleTransform3D 엘리먼트 사용하기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


MainWindow.xaml

 

 

<Window x:Class="TestProject.MainWindow"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="800"

    Height="600"

    Title="ScaleTransform3D 엘리먼트 사용하기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

    <Grid Margin="10">

        <Grid.ColumnDefinitions>

            <ColumnDefinition Width="Auto" />

            <ColumnDefinition Width="*"    />

        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto" />

            <RowDefinition Height="Auto" />

            <RowDefinition Height="Auto" />

            <RowDefinition Height="*"    />

            <RowDefinition Height="Auto" />

            <RowDefinition Height="Auto" />

            <RowDefinition Height="Auto" />

        </Grid.RowDefinitions>

        <TextBlock Grid.Row="0" Grid.Column="0"

            Text="모델 스케일 X" />

        <ScrollBar Name="modelXScrollBar" Grid.Row="0" Grid.Column="1"

            Orientation="Horizontal"

            Minimum="-5"

            Maximum="5"

            Value="1" />

        <TextBlock Grid.Row="1" Grid.Column="0"

            Text="모델 스케일 Y" />

        <ScrollBar Name="modelYScrollBar" Grid.Row="1" Grid.Column="1"

            Orientation="Horizontal"

            Minimum="-5"

            Maximum="5"

            Value="1" />

        <TextBlock Grid.Row="2" Grid.Column="0"

            Text="모델 스케일 Z" />

        <ScrollBar Name="modelZScrollBar" Grid.Row="2" Grid.Column="1"

            Orientation="Horizontal"

            Minimum="-5"

            Maximum="5"

            Value="1" />

        <Viewport3D Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2">

            <ModelVisual3D>

                <ModelVisual3D.Content>

                    <Model3DGroup>

                        <GeometryModel3D>

                            <GeometryModel3D.Geometry>

                                <MeshGeometry3D

                                    Positions="0 0  0, 2 0  0, 2 1  0,

                                               0 0 -3, 2 0 -3, 2 1 -3,

                                               2 1 -3, 0 0 -3, 2 1  0,

                                               0 0  0, 2 1  0, 2 0  0,

                                               2 1 -3, 2 0 -3, 2 0  0,

                                               0 0  0, 2 0 -3, 0 0 -3"

                                    TriangleIndices=" 0  1  2,  3  5  4,

                                                      6  7  8,  7  9  8,

                                                     10 11 12, 11 13 12,

                                                     14 15 16, 15 17 16" />

                            </GeometryModel3D.Geometry>

                            <GeometryModel3D.Material>

                                <DiffuseMaterial Brush="RoyalBlue" />

                            </GeometryModel3D.Material>

                            <GeometryModel3D.Transform>

                                <ScaleTransform3D

                                    ScaleX="{Binding ElementName=modelXScrollBar, Path=Value}"

                                    ScaleY="{Binding ElementName=modelYScrollBar, Path=Value}"

                                    ScaleZ="{Binding ElementName=modelZScrollBar, Path=Value}" />

                            </GeometryModel3D.Transform>

                        </GeometryModel3D>

                        <AmbientLight Color="#404040" />

                        <DirectionalLight

                            Color="#c0c0c0"

                            Direction="2 -3 -1" />

                    </Model3DGroup>

                </ModelVisual3D.Content>

            </ModelVisual3D>

            <Viewport3D.Camera>

                <PerspectiveCamera

                    Position="-2 2 4"

                    LookDirection="2 -1 -4"

                    UpDirection="0 1 0"

                    FieldOfView="45">

                    <PerspectiveCamera.Transform>

                        <ScaleTransform3D

                            ScaleX="{Binding ElementName=cameraXScrollBar, Path=Value}"

                            ScaleY="{Binding ElementName=cameraYScrollBar, Path=Value}"

                            ScaleZ="{Binding ElementName=cameraZScrollBar, Path=Value}" />

                    </PerspectiveCamera.Transform>

                </PerspectiveCamera>

            </Viewport3D.Camera>

        </Viewport3D>

        <TextBlock Grid.Row="4" Grid.Column="0"

            Margin="0 0 10 0"

            Text="카메라 스케일 X" />

        <ScrollBar Name="cameraXScrollBar" Grid.Row="4" Grid.Column="1"

            Orientation="Horizontal"

            Minimum="-5"

            Maximum="5"

            Value="1" />

        <TextBlock Grid.Row="5" Grid.Column="0"

            Margin="0 0 10 0"

            Text="카메라 스케일 Y" />

        <ScrollBar Name="cameraYScrollBar" Grid.Row="5" Grid.Column="1"

            Orientation="Horizontal"

            Minimum="-5"

            Maximum="5"

            Value="1" />

        <TextBlock Grid.Row="6" Grid.Column="0"

            Margin="0 0 10 0"

            Text="카메라 스케일 Z" />

        <ScrollBar Name="cameraZScrollBar" Grid.Row="6" Grid.Column="1"

            Orientation="Horizontal"

            Minimum="-5"

            Maximum="5"

            Value="1" />

    </Grid>

</Window>

 

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker