■ MeshGeometry3D 엘리먼트 : TextureCoordinates 속성을 사용해 12면체의 브러시 매핑하기

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


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="MeshGeometry3D 엘리먼트 : TextureCoordinates 속성을 사용해 12면체의 브러시 매핑하기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

    <Viewport3D>

        <ModelVisual3D>

            <ModelVisual3D.Content>

                <Model3DGroup>

                    <GeometryModel3D>

                        <GeometryModel3D.Geometry>

                            <MeshGeometry3D

                                Positions="

                                 1.171 -0.724  0    ,  1 -1 -1,  1.618  0     -0.618,  1.618  0      0.618,  1 -1  1,  0.618 -1.618  0    ,

                                -1.171 -0.724  0    , -1 -1  1, -1.618  0      0.618, -1.618  0     -0.618, -1 -1 -1, -0.618 -1.618  0    ,

                                -1.171  0.724  0    , -1  1 -1, -1.618  0     -0.618, -1.618  0      0.618, -1  1  1, -0.618  1.618  0    ,

                                 1.171  0.724  0    ,  1  1  1,  1.618  0      0.618,  1.618  0     -0.618,  1  1 -1,  0.618  1.618  0    ,

                                -0.724  0     -1.171, -1  1 -1,  0      0.618 -1.618,  0     -0.618 -1.618, -1 -1 -1, -1.618  0     -0.618,

                                -0.724  0      1.171, -1 -1  1,  0     -0.618  1.618,  0      0.618  1.618, -1  1  1, -1.618  0      0.618,

                                 0.724  0     -1.171,  1 -1 -1,  0     -0.618 -1.618,  0      0.618 -1.618,  1  1 -1,  1.618  0     -0.618,

                                 0.724  0      1.171,  1  1  1,  0      0.618  1.618,  0     -0.618  1.618,  1 -1  1,  1.618  0      0.618,

                                 0     -1.171 -0.724,  1 -1 -1,  0.618 -1.618  0    , -0.618 -1.618  0    , -1 -1 -1,  0     -0.618 -1.618,

                                 0      1.171 -0.724, -1  1 -1, -0.618  1.618  0    ,  0.618  1.618  0    ,  1  1 -1,  0      0.618 -1.618,

                                 0     -1.171  0.724, -1 -1  1, -0.618 -1.618  0    ,  0.618 -1.618  0    ,  1 -1  1,  0     -0.618  1.618,

                                 0      1.171  0.724,  1  1  1,  0.618  1.618  0    , -0.618  1.618  0    , -1  1  1,  0      0.618  1.618"

                                TriangleIndices=" 0  1  2,  0  2  3,  0  3  4,  0  4  5,  0  5  1,

                                                  6  7  8,  6  8  9,  6  9 10,  6 10 11,  6 11  7,

                                                 12 13 14, 12 14 15, 12 15 16, 12 16 17, 12 17 13,

                                                 18 19 20, 18 20 21, 18 21 22, 18 22 23, 18 23 19,

                                                 24 25 26, 24 26 27, 24 27 28, 24 28 29, 24 29 25,

                                                 30 31 32, 30 32 33, 30 33 34, 30 34 35, 30 35 31,

                                                 36 37 38, 36 38 39, 36 39 40, 36 40 41, 36 41 37,

                                                 42 43 44, 42 44 45, 42 45 46, 42 46 47, 42 47 43,

                                                 48 49 50, 48 50 51, 48 51 52, 48 52 53, 48 53 49,

                                                 54 55 56, 54 56 57, 54 57 58, 54 58 59, 54 59 55,

                                                 60 61 62, 60 62 63, 60 63 64, 60 64 65, 60 65 61,

                                                 66 67 68, 66 68 69, 66 69 70, 66 70 71, 66 71 67"

                                TextureCoordinates="0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4

                                                    0.5 0.5, 0.5 0, 1 0.4, 0.85 1, 0.15 1, 0 0.4" />

                        </GeometryModel3D.Geometry>

                        <GeometryModel3D.Material>

                            <DiffuseMaterial>

                                <DiffuseMaterial.Brush>

                                    <LinearGradientBrush>

                                        <GradientStop Offset="0" Color="White"     />

                                        <GradientStop Offset="1" Color="RoyalBlue" />

                                    </LinearGradientBrush>

                                </DiffuseMaterial.Brush>

                            </DiffuseMaterial>

                        </GeometryModel3D.Material>

                        <GeometryModel3D.Transform>

                            <RotateTransform3D>

                                <RotateTransform3D.Rotation>

                                    <AxisAngleRotation3D x:Name="axisAngleRotation3D"

                                        Axis="1 2 0" />

                                </RotateTransform3D.Rotation>

                            </RotateTransform3D>

                        </GeometryModel3D.Transform>

                    </GeometryModel3D>

                    <AmbientLight Color="Gray" />

                    <DirectionalLight

                        Color="Gray"

                        Direction="1, -3 -2" />

                </Model3DGroup>

            </ModelVisual3D.Content>

        </ModelVisual3D>

        <Viewport3D.Camera>

            <PerspectiveCamera

                Position="0 0 7"

                LookDirection="0 0 -5"

                UpDirection="0 1 0"

                FieldOfView="45" />

        </Viewport3D.Camera>

    </Viewport3D>

    <Window.Triggers>

        <EventTrigger RoutedEvent="Window.Loaded">

            <BeginStoryboard>

                <Storyboard

                    TargetName="axisAngleRotation3D"

                    TargetProperty="Angle">

                    <DoubleAnimation

                        To="360"

                        Duration="0:0:30"

                        RepeatBehavior="Forever" />

                </Storyboard>

            </BeginStoryboard>

        </EventTrigger>

    </Window.Triggers>

</Window>

 

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

Posted by 사용자 icodebroker

댓글을 달아 주세요