码迷,mamicode.com
首页 > Windows程序 > 详细

C#编程之3D平移布局

时间:2019-12-17 15:29:46      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:horizon   tty   一个   pre   prope   sla   bsp   ons   左右   

这里我们主要讲一下3D图形以三维面平移的设计方法。

3D图按照三维平移,可以有上,下,左,右,前,后 ,共6个方向,我们分别将这六个操作由按键来实现操作。

对于按键的布局我们上下为一列,左右前后为一行。

 1             <DockPanel.Resources>
 2                 <Style TargetType="Button">
 3                     <Setter Property="HorizontalAlignment" Value="Center"/>
 4                     <Setter Property="Padding" Value="3"/>
 5                 </Style>
 6             </DockPanel.Resources>
 7             
 8             <StackPanel DockPanel.Dock="Top" Background="Gray" Height="auto">
 9                 <Button Click="up_Click">↑</Button>
10                 <Button Click="down_Click">↓</Button>
11                 <StackPanel HorizontalAlignment="Center"
12                    Orientation="Horizontal">
13                     <Button Click="left_Click">←</Button>
14                     <Button Click="right_Click">→</Button>
15                     <Button Click="out_Click">↖</Button>
16                     <Button Click="in_Click">↘</Button>
17                 </StackPanel>
18             </StackPanel>

首先定义按键样式原模板,接着按键叠加方式有上至下,背景为灰色,高度自动调整,在放置上下按键后,创建由中心开始的横向排列按键,同时为所有的按键添加按键点击事件处理函数,效果:

技术图片

接着,创建一个三维图形:

技术图片
            <Viewport3D Width="600" Margin="0,0,0,0">
                <Viewport3D.Camera>
                    <PerspectiveCamera Position="-2.5 2.5 5" LookDirection="0.5 -0.5 -1"/>
                </Viewport3D.Camera>
                <ModelVisual3D>
                    <ModelVisual3D.Content>
                        <Model3DGroup>
                            <DirectionalLight Direction="1 0 -7"
                            Color="White"/>
                            <GeometryModel3D>
                                <GeometryModel3D.Geometry>
                                    <MeshGeometry3D Positions="-1 1 1, 1 1 1, -1 -1 1, 1 -1 1, -1 1 -1, 1 1 -1, -1 -1 -1, 1 -1 -1
                                                       1 1 1, 1 1 -1, 1 -1 1, 1 -1 -1, -1 1 1, -1 1 -1, -1 -1 1, -1 -1 -1
                                                       -1 1 1, -1 1 -1, 1 1 1, 1 1 -1, -1 -1 1, -1 -1 -1, 1 -1 1, 1 -1 -1"
                                           TriangleIndices="0 2 1, 1 2 3, 5 6 4, 5 7 6
                                                             8 10 9, 9 10 11, 13 14 12, 13 15 14
                                                             16 18 17, 17 18 19, 22 21 20, 22 23 21"/>
                                </GeometryModel3D.Geometry>

                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green"/>
                                </GeometryModel3D.Material>

                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red"/>
                                </GeometryModel3D.BackMaterial>
                            </GeometryModel3D>
                        </Model3DGroup>
                    </ModelVisual3D.Content>

                    <ModelVisual3D.Transform>
                        <TranslateTransform3D x:Name="transform" />
                    </ModelVisual3D.Transform>

                </ModelVisual3D>
            </Viewport3D>
3D

首先是创建一个三维可视区: <Viewport3D Width="600" Margin="0,0,0,0"> 

调整相机位置与方向

                <Viewport3D.Camera>
                    <PerspectiveCamera Position="-2.5,2.5,5" LookDirection="0.5,-0.5,1"/>
                </Viewport3D.Camera>

C#编程之3D平移布局

标签:horizon   tty   一个   pre   prope   sla   bsp   ons   左右   

原文地址:https://www.cnblogs.com/lumao1122-Milolu/p/12053253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!