• C#编程之创建三维效果的按键


    首先需要理解一下基本的多维概念:我们知道一位是点,二维由一维演化成面,三维由二维演化成体...

    例如要创建一个长方形,那么就要创建4个顶点,所以没创建一个面都需要将四个顶点通过 TriangleIndices 属性排列起来,即连接起来。那么对位旋转体来说,其三维旋转方向就有三个方向:

    前后,左右,上下,由 Axis 属性选择,而旋转量由 Angle 属性选择,

    1                <Viewport2DVisual3D.Transform>
    2                     <RotateTransform3D>
    3                         <RotateTransform3D.Rotation>
    4                             <AxisAngleRotation3D Angle="40" Axis="0, 1, 0" /><!--forward back,left right,up down-->
    5                         </RotateTransform3D.Rotation>
    6                     </RotateTransform3D>
    7                 </Viewport2DVisual3D.Transform>

    此外对于三维的观测,我们还需要设置其观测位置,也就是相机属性 Viewport3D.Camera 其参数属性 由<PerspectiveCamera Position="0,0,12"/> 配置;

    下面是一创建一个三维按键的例程:

    <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Viewport3D>
                <Viewport3D.Camera >
                    <PerspectiveCamera Position="0,0,12"/>
                </Viewport3D.Camera>
    
                <!-- Button on 3D -->
                <Viewport2DVisual3D>
                    <!-- Give the plane a slight rotation -->
                    <Viewport2DVisual3D.Transform>
                        <RotateTransform3D>
                            <RotateTransform3D.Rotation>
                                <AxisAngleRotation3D Angle="40" Axis="0, 1, 0" /><!--forward back,left right,up down-->
                            </RotateTransform3D.Rotation>
                        </RotateTransform3D>
                    </Viewport2DVisual3D.Transform>
    
                    <!-- The Geometry, Material, and Visual for the Viewport2DVisual3D -->
                    <Viewport2DVisual3D.Geometry>
                                                   <!--vertex 1,2,3,4-->
                        <MeshGeometry3D Positions="-1,1,0 -1,-1,0 1,-1,0 1,1,0"
                                TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
                    </Viewport2DVisual3D.Geometry>
    
                    <Viewport2DVisual3D.Material>
                        <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
                    </Viewport2DVisual3D.Material>
    
                    <Button>Hello, 3D</Button>
                </Viewport2DVisual3D>
    
                <!-- Lights -->
                <ModelVisual3D>
                    <ModelVisual3D.Content>
                        <DirectionalLight Color="#FFFFFFFF" Direction="0,0,-1"/>
                    </ModelVisual3D.Content>
                </ModelVisual3D>
            </Viewport3D>
        </Grid>
    </Window>
    View Code

    编译运行:

    接下来章节中,我们将继续讲解.

    End.

    谢谢.

  • 相关阅读:
    HDU-4035 Maze
    poj 3744 Scout YYF I
    HDU 4911 Inversion
    HDU-3001 Travelling
    HDU 4539 郑厂长系列故事——排兵布阵
    poj 3311 Hie with the Pie
    poj-1185 炮兵阵地
    位运算
    HDU-1438 钥匙计数之一
    poj 3254 Corn Fields
  • 原文地址:https://www.cnblogs.com/lumao1122-Milolu/p/12029849.html
Copyright © 2020-2023  润新知