첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ DrawingBrush 엘리먼트 사용하기

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


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="DrawingBrush 엘리먼트 사용하기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

    <DockPanel>

        <ScrollBar Name="horizontalScrollBar" DockPanel.Dock="Bottom"

            Orientation="Horizontal"

            Minimum="-180"

            Maximum="180"

            LargeChange="10"

            SmallChange="1" />

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

            Orientation="Vertical"

            Minimum="-180"

            Maximum="180"

            LargeChange="10"

            SmallChange="1" />

        <Viewport3D>

            <ModelVisual3D>

                <ModelVisual3D.Content>

                    <Model3DGroup>

                        <GeometryModel3D>

                            <GeometryModel3D.Geometry>

                                <MeshGeometry3D

                                    Positions="-0.5  0.5  0.5,  0.5  0.5  0.5,

                                               -0.5 -0.5  0.5,  0.5 -0.5  0.5,

                                                0.5  0.5 -0.5, -0.5  0.5 -0.5,

                                                0.5 -0.5 -0.5, -0.5 -0.5 -0.5,

                                               -0.5  0.5 -0.5, -0.5  0.5  0.5,

                                               -0.5 -0.5 -0.5, -0.5 -0.5  0.5,

                                                0.5  0.5  0.5,  0.5  0.5 -0.5,

                                                0.5 -0.5  0.5,  0.5 -0.5 -0.5,

                                               -0.5  0.5 -0.5,  0.5  0.5 -0.5,

                                               -0.5  0.5  0.5,  0.5  0.5  0.5,

                                                0.5 -0.5 -0.5, -0.5 -0.5 -0.5,

                                                0.5 -0.5  0.5, -0.5 -0.5  0.5"

                                    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

                                                     16 18 17, 17 18 19

                                                     20 22 21, 21 22 23"

                                    TextureCoordinates="0 0, 1 0, 0 1, 1 1,

                                                        0 0, 1 0, 0 1, 1 1,

                                                        0 0, 1 0, 0 1, 1 1,

                                                        0 0, 1 0, 0 1, 1 1,

                                                        0 0, 1 0, 0 1, 1 1,

                                                        0 0, 1 0, 0 1, 1 1" />

                            </GeometryModel3D.Geometry>

                            <GeometryModel3D.Material>

                                <MaterialGroup>

                                    <DiffuseMaterial>

                                        <DiffuseMaterial.Brush>

                                            <ImageBrush ImageSource="./sample.jpg" />

                                        </DiffuseMaterial.Brush>

                                    </DiffuseMaterial>

                                    <DiffuseMaterial>

                                        <DiffuseMaterial.Brush>

                                            <DrawingBrush

                                                Viewbox="0 0 100 100"

                                                ViewboxUnits="Absolute">

                                                <DrawingBrush.Drawing>

                                                    <GeometryDrawing>

                                                        <GeometryDrawing.Geometry>

                                                            <EllipseGeometry Center="50 50" RadiusX="50" RadiusY="50" />

                                                        </GeometryDrawing.Geometry>

                                                        <GeometryDrawing.Pen>

                                                            <Pen

                                                                Brush="RoyalBlue"

                                                                Thickness="3"

                                                                StartLineCap="Round"

                                                                EndLineCap="Round" />

                                                        </GeometryDrawing.Pen>

                                                    </GeometryDrawing>

                                                </DrawingBrush.Drawing>

                                            </DrawingBrush>

                                        </DiffuseMaterial.Brush>

                                    </DiffuseMaterial>

                                </MaterialGroup>

                            </GeometryModel3D.Material>

                            <GeometryModel3D.Transform>

                                <Transform3DGroup>

                                    <RotateTransform3D>

                                        <RotateTransform3D.Rotation>

                                            <AxisAngleRotation3D

                                                Axis="0 1 0"

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

                                        </RotateTransform3D.Rotation>

                                    </RotateTransform3D>

                                    <RotateTransform3D>

                                        <RotateTransform3D.Rotation>

                                            <AxisAngleRotation3D

                                                Axis="1 0 0"

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

                                        </RotateTransform3D.Rotation>

                                    </RotateTransform3D>

                                </Transform3DGroup>

                            </GeometryModel3D.Transform>

                        </GeometryModel3D>

                        <AmbientLight Color="White" />

                    </Model3DGroup>

                </ModelVisual3D.Content>

            </ModelVisual3D>

            <Viewport3D.Camera>

                <PerspectiveCamera

                    Position="-2 2 4"

                    LookDirection="2 -2 -4"

                    UpDirection="0 1 0"

                    FieldOfView="30" />

            </Viewport3D.Camera>

        </Viewport3D>

    </DockPanel>

</Window>

 

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

Posted by 사용자 icodebroker

댓글을 달아 주세요