




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WPF之3D基础二维与三维空间对比WPF的3D空间形成原理在3D动画中,要画一个3D模型,必须要有1、照相机2、光源照相机照相机相当于观察位置(你是从那个位置看的)了解三维场景如何在二维图面上表示的另一种方法就是将场景描述为到观察表面上的投影。有两种Camera:1、ProjectionCamera2、OrthographicCamera使用 ProjectionCamera,可以指定不同的投影及其属性以更改观察者查看三维模型的方式。PerspectiveCamera 指定用来对场景进行透视收缩的投影。ProjectionCamera 的 NearPlaneDistance 和 FarPlaneDistance 属性限制照相机的投影范围。OrthographicCamera 指定三维模型到二维可视化图面上的正投影。光源与实际的光一样,三维图形中的光能够使图面可见。更确切地说,光确定了场景的哪个部分将包括在投影中。WPF 中的光对象创建了各种光和阴影效果,而且是按照各种实际光的行为建模的。您必须至少在场景中包括一个光,否则模型将不可见。 AmbientLight:它所提供的环境光以一致的方式照亮所有的对象,而与对象的位置或方向无关。 DirectionalLight:像远处的光源那样照亮。 将方向光的 Direction 指定为 Vector3D,但是没有为方向光指定位置。 PointLight:像近处的光源那样照亮。 PointLight 具有一个位置并从该位置投射光。场景中的对象是根据对象相对于光源的位置和距离而被照亮的。PointLightBase 公开 Range 属性,该属性确定一个距离, 超过该距离后模型将无法由光源照亮。 PointLight 还公开了多个衰减属性,这些属性确定光源的亮度如何随距离的增加而减小。 您可以为光源的衰减指定恒定、线性或二次内插算法。 SpotLight:从 PointLight 继承。 Spotlight 的照亮方式与 PointLight 类似,但是它既具有位置又具有方向。它们在 InnerConeAngle 和OuterConeAngle 属性所设置的锥形区域(以度为单位指定)中投射光。 光源是 Model3D 对象,因此您可以转换光源对象并对光源属性(包括位置、颜色、方向和范围)进行动画处理。 构建3D坐标系使用3D Tools构建3D坐标系 使用MeshGeometry3D建立三角形 这里介绍MeshGeometry的属性Positions表示三维坐标系顶点坐标,以空格为间隔.那么这三个坐标则为1. 1,0,0(红线右正) 2. 0,-1,0(蓝线上正) 3. 0,0,1(绿线右正) 效果如下画多个三角形坐标点必须是3的倍数,如下 坐标索引(TriangleIndices)默认情况下画三角形,以第0个坐标点为索引值.TriangleIndices可以让我们改变画三角形坐标点的索引值,比如4个坐标点,本来是0,1,2,第4个坐标点将无效,这里可以将坐标点看做储备坐标,用每3个坐标点拼凑三角形如画出上面3个三角形的其中一个,那么索引就是3,4,5(从0开始) 再如下例子,利用坐标索引构建不同形状的三角形 利用多个三角形构建多边形2个三角形就可以构成一个4边形,同理也可以构建多边形 效果图两个面的平面(BackMaterial)如一张纸有两个面 用旋转测试就能看出其效果透视立方体如果一个立方体的正面和背面的颜色不同,我们无法肉眼看到背面,如下图如果默认不设置Material属性的话,则会显示背面的颜色 !- - 目标:画一个立方体根据上篇画三角形的步骤,我们知道2个三角形可以画1个四边形,一个立方体有6个面,如果伪3D的话则只需要画3个平面就可以了(背后隐藏着3个平面),如下如果给立方体添加动画(如旋转动画,那么就需要看到背面的平面),这时候就需要画6个平面.我们需要给每个平面都构造2三角形,即6个点,比如其中一个 画6个面 效果图上面已经看到了旋转立方体添加一个RotateTransform3D 就不用动画了.直接Timer演示public Window2() InitializeComponent(); DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(0.001); timer.Tick += new EventHandler(timer_Tick); timer.Start();private int i = 0;void timer_Tick(object sender, EventArgs e) if (myAngleRotation.Angle + 5 = 360) i+; if (i % 2 = 1) myAngleRotation.Axis = new Vector3D(3, 3, 0); else myAngleRot
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七下第五单元数学试卷
- 母婴年终活动策划方案范文(3篇)
- 工地特大溶洞施工方案(3篇)
- 小学守护戎装活动方案策划(3篇)
- 轻钢房施工方案(3篇)
- 零配件活动策划方案(3篇)
- 消防相亲联谊活动方案策划(3篇)
- 中基考试题库及答案
- 北京市门头沟区2023-2024学年九年级上学期第一次月考物理考试题目及答案
- 北京市昌平区2024-2025学年八年级下学期第二次月考语文题库及答案
- 秋季肌肤护理课件
- 磁粉检测培训课件
- 骨科总论教学课件
- 大单元教学培训
- 公墓建设可行性研究报告
- 2024年成都新都投资集团有限公司招聘笔试真题
- 混合痔护理教学课件
- 罐式专用运输管理制度
- 石家庄供暖管网规划方案
- 2025届上海市金山区高三下学期二模英语试题(解析版)
- 2025年全国统一高考语文试卷(全国一卷)含答案
评论
0/150
提交评论