첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

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 속성을 사용해 피라미드의 브러시 매핑하기"
    FontFamily="나눔고딕코딩"
    FontSize="16">
    <DockPanel>
        <ScrollBar Name="scrollBar" DockPanel.Dock="Bottom"
            Orientation="Horizontal"
            Minimum="-180"
            Maximum="180"
            LargeChange="10"
            SmallChange="1" />
        <Viewport3D>
            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <Model3DGroup>
                        <GeometryModel3D>
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D
                                    Positions="0 1 0, -0.5 0  0.5,  0.5 0  0.5,
                                               0 1 0,  0.5 0 -0.5, -0.5 0 -0.5,
                                               0 1 0, -0.5 0 -0.5, -0.5 0  0.5,
                                               0 1 0,  0.5 0  0.5,  0.5 0 -0.5"
                                    TriangleIndices="0 1 2, 3 4 5,
                                                     6 7 8, 9 10 11"
                                    TextureCoordinates="1 0, 0 1, 1 1,
                                                        1 0, 0 1, 0 0,
                                                        1 0, 0 0, 0 1,
                                                        1 0, 1 1, 0 1" />
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial>
                                    <DiffuseMaterial.Brush>
                                        <LinearGradientBrush StartPoint="0 0" EndPoint="1 1">
                                            <GradientStop Offset="0"   Color="#ff0000" />
                                            <GradientStop Offset="0.2" Color="#ffff00" />
                                            <GradientStop Offset="0.4" Color="#00ff00" />
                                            <GradientStop Offset="0.6" Color="#00ffff" />
                                            <GradientStop Offset="0.8" Color="#0000ff" />
                                            <GradientStop Offset="1"   Color="#ff00ff" />
                                        </LinearGradientBrush>
                                    </DiffuseMaterial.Brush>
                                </DiffuseMaterial>
                            </GeometryModel3D.Material>
                            <GeometryModel3D.Transform>
                                <RotateTransform3D>
                                    <RotateTransform3D.Rotation>
                                        <AxisAngleRotation3D
                                            Axis="0 1 0"
                                            Angle="{Binding ElementName=scrollBar, Path=Value}" />
                                    </RotateTransform3D.Rotation>
                                </RotateTransform3D>
                            </GeometryModel3D.Transform>
                        </GeometryModel3D>
                        <AmbientLight Color="Gray" />
                        <DirectionalLight
                            Color="Gray"
                            Direction="2 -3 -1" />
                    </Model3DGroup>
                </ModelVisual3D.Content>
            </ModelVisual3D>
            <Viewport3D.Camera>
                <PerspectiveCamera
                    Position="-2 2.3 4"
                    LookDirection="2 -2 -4"
                    UpDirection="0 1 0"
                    FieldOfView="22.5" />
            </Viewport3D.Camera>
        </Viewport3D>
    </DockPanel>
</Window>
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요