zoukankan      html  css  js  c++  java
  • 《Programming WPF》翻译 第7章 6.视频和3D

    虽然详细地讨论视频和3-D超越了这本书的范围,但是获得这些特征的支持是值得的。

    视频由MediaElement类型支持。这个元素可以被添加到UI树的任何地方。简单的设置它的Source属性以关联到它要播放的视频流,如示例7-49所示。

    示例7-49

    <MediaElement Source="C:\WINDOWS\system32\oobe\images\intro.wmv" Stretch="Fill" />

    3-D内容通过Viewport3D支持。直到WPF的外观系统被关联,Viewport3D只是一个正规的控件,同时它可以被设定大小和定位,像其它控件那样。然而,你提供了这样的控件,带有3-D模型、发光、照相机位置信息。它会生成这个模型。这个控件担当了一个3-D屏幕上的窗体,正如示例7-50所示。

    示例7-50

    <Viewport3D ClipToBounds="true">
        
    <Viewport3D.Camera>
            
    <PerspectiveCamera NearPlaneDistance="1" FarPlaneDistance="100"
                               LookAtPoint
    ="0,0,0" Position="30, -2, 20" Up="0, 0, 1"
                               FieldOfView
    ="45" />
        
    </Viewport3D.Camera>

        
    <Viewport3D.Models>
            
    <Model3DGroup>
                
    <DirectionalLight Color="#FFFFFFFF" Direction="10,25,-1" />
                
    <AmbientLight Color="#66666666" />

                
    <GeometryModel3D>
                    
    <GeometryModel3D.Geometry>
                        
    <MeshGeometry3D
                            
    TriangleIndices="0 1 2  1 2 3  2 3 0  0 1 3"
                            Normals
    ="-1,-1,0 1,-1,0 1,0,0 0,0,1"
                            Positions
    ="-2,-2,-2  2,-2,-2  0,2,-2  0,0,1"/>
                    
    </GeometryModel3D.Geometry>
                    
    <GeometryModel3D.Material>
                        
    <MaterialGroup>
                            
    <DiffuseMaterial Brush="LightGreen" />
                            
    <SpecularMaterial Brush="White" />
                        
    </MaterialGroup>
                    
    </GeometryModel3D.Material>
                
    </GeometryModel3D >
            
    </Model3DGroup>
        
    </Viewport3D.Models>
    </Viewport3D>

    这就建立了一个非常简单的3-D模型,包含了一个单独的基于正方形的锥形。图7-58显示了结果。这个模型还包含了一些光源来保证模型是可见的。这个Viewport还有一个详细指出的照相机位置。

    7-58


    实际上,你可以正常的使用任意类型的
    3-D设计工具模型,因此你不能典型地希望和模型标记一起工作,如示例7-50所示。Viewport3D仅提供了一个便利的方法,将结果集成到你的可视化树中。

  • 相关阅读:
    Oracle存储过程例子:运用了正则表达式、数组等
    Oracle正则表达式中注意的问题
    先取主键最大值再取extracted_time,替换Max(extracted_time)会有更高的效率
    临时表的使用及minus运算
    设置自动管理空间
    字段以Byte(字节)或char(字符)存储的设置
    javascript控制页面控件隐藏显示的两种方法
    Javascript遍历页面控件
    精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
    事半功倍系列之javascript (转载)
  • 原文地址:https://www.cnblogs.com/Jax/p/1137027.html
Copyright © 2011-2022 走看看