打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
wpf 绘制三维图形

wpf 绘制三维图形

(2011-01-04 15:55:59)
标签:

杂谈

分类: .net

照相机和投影
处理二维对象的开发人员习惯于将绘图基元置于二维屏幕上。当您创建三维场景时,一定要记住您实际上是要创建三维对象的二维表示形式。由于三维场景的外观会因观察者的观察位置不同而异,因此您必须指定观察位置。可以使用Camera 类来为三维场景指定观察位置。

了解三维场景如何在二维图面上表示的另一种方法就是将场景描述为到观察表面上的投影。使用ProjectionCamera,可以指定不同的投影及其属性以更改观察者查看三维模型的方式。PerspectiveCamera指定用来对场景进行透视收缩的投影。 换言之,PerspectiveCamera 提供消失点透视。您可以指定照相机在场景坐标系中的位置、照相机的方向和视野以及用来定义场景中“向上”方向的向量。下图阐释PerspectiveCamera 的投影。

ProjectionCamera 的 NearPlaneDistance 和 FarPlaneDistance属性限制照相机的投影范围。由于照相机可以位于场景中的任何位置,因此照相机实际上可能会位于模型内部或者紧靠模型,这使得很难正确区分对象。使用NearPlaneDistance,可以指定一个距离照相机的最小距离,即,在超过该距离后将不绘制对象。 相反,使用FarPlaneDistance,可以指定一个距离照相机的距离(即,在超过该距离后将不绘制对象),从而确保因距离太远而无法识别的对象将不包括在场景中。

照相机位置


OrthographicCamera指定三维模型到二维可视化图面上的正投影。与其他照相机一样,它指定位置、观察方向和“向上”方向。但是,与PerspectiveCamera 不同的是,OrthographicCamera描述了不包括透视收缩的投影。换言之,OrthographicCamera描述了一个侧面平行的取景框,而不是侧面汇集在场景中一点的取景框。下图演示使用 PerspectiveCamera 和OrthographicCamera 查看同一模型时的情况。

透视投影和正投影

        

<Viewport3D>
       <Viewport3D.Camera>
           <PerspectiveCameraPosition="-2,2,2"LookDirection="2,-2,-2"UpDirection="0,1,0"/>
       </Viewport3D.Camera>
       <Viewport3D.Children>                                          
           <ModelVisual3Dx:Name="Light">       //照亮操作,否则图形不能显示颜色
               <ModelVisual3D.Content>
                   <AmbientLight/>
               </ModelVisual3D.Content>
           </ModelVisual3D>

使用MeshGeometry3D建立三角形

                <ModelVisual3D>                    <ModelVisual3D.Content>                        <GeometryModel3D>                            <GeometryModel3D.Geometry>                                <MeshGeometry3D Positions="1,0,0 0,-1,0 0,0,1"/>                            </GeometryModel3D.Geometry>                            <GeometryModel3D.Material>                                <DiffuseMaterial Brush="Yellow" />                            </GeometryModel3D.Material>                        </GeometryModel3D>                    </ModelVisual3D.Content>                </ModelVisual3D>

</Viewport3D>

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
WPF 3D 小小小小引擎
最优化WPF 3D性能(基于“Tier-2”硬件)
WPF疑难杂症之一(3D场景)
Three.js教程:透视投影相机
WPF 3D动态加载模型文件
gluProject?详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服