■ MeshGeometry3D 엘리먼트 : Normals 속성을 사용해 1/4조각 튜브 만들기

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


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 엘리먼트 : Normals 속성을 사용해 1/4조각 튜브 만들기">

    <DockPanel>

        <ScrollBar Name="scrollBar" DockPanel.Dock="Right"

            Orientation="Vertical"

            Minimum="-180"

            Maximum="180"

            LargeChange="10"

            SmallChange="1" />

        <Viewport3D>

            <ModelVisual3D>

                <ModelVisual3D.Content>

                    <Model3DGroup>

                        <GeometryModel3D>

                            <GeometryModel3D.Geometry>

                                <MeshGeometry3D

                                    Positions="0.707 0.707 -4,  0.707 0.707 0,  0.383 0.924 -4,  0.383 0.924 0,

                                               0.383 0.924 -4,  0.383 0.924 0,  0.000 1.000 -4,  0.000 1.000 0,

                                               0.000 1.000 -4,  0.000 1.000 0, -0.383 0.934 -4, -0.383 0.924 0,

                                              -0.383 0.934 -4, -0.383 0.924 0, -0.707 0.707 -4, -0.707 0.707 0"

                                    TriangleIndices=" 0  2  1,  1  2  3

                                                      4  6  5,  5  6  7,

                                                      8 10  9,  9 10 11,

                                                     12 14 13, 13 14 15"

                                    Normals=" 0.707 0.707 0,  0.707 0.707 0,  0.383 0.924 0,  0.383 0.924 0,

                                              0.383 0.924 0,  0.383 0.924 0,  0.000 1.000 0,  0.000 1.000 0,

                                              0.000 1.000 0,  0.000 1.000 0, -0.383 0.934 0, -0.383 0.924 0,

                                             -0.383 0.934 0, -0.383 0.924 0, -0.707 0.707 0, -0.707 0.707 0" />

                            </GeometryModel3D.Geometry>

                            <GeometryModel3D.Material>

                                <DiffuseMaterial Brush="RoyalBlue" />

                            </GeometryModel3D.Material>

                            <GeometryModel3D.BackMaterial>

                                <DiffuseMaterial Brush="Gold" />

                            </GeometryModel3D.BackMaterial>

                            <GeometryModel3D.Transform>

                                <RotateTransform3D CenterZ="-2">

                                    <RotateTransform3D.Rotation>

                                        <AxisAngleRotation3D Axis="1 0 0"

                                            Angle="{Binding ElementName=scrollBar, Path=Value}" />

                                    </RotateTransform3D.Rotation>

                                </RotateTransform3D>

                            </GeometryModel3D.Transform>

                        </GeometryModel3D>

                        <AmbientLight Color="#404040" />

                        <DirectionalLight

                            Color="#c0c0c0"

                            Direction="2 -3 1" />

                    </Model3DGroup>

                </ModelVisual3D.Content>

            </ModelVisual3D>

            <Viewport3D.Camera>

                <PerspectiveCamera

                    Position="-2 4 4"

                    LookDirection="0.4 -0.55 -1"

                    UpDirection="0 1 0"

                    FieldOfView="30" />

            </Viewport3D.Camera>

        </Viewport3D>

    </DockPanel>

</Window>

 

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

Posted by 사용자 icodebroker

댓글을 달아 주세요