




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
代码/术士文章/Zaoeyo 纯VBA方法之一:2003版 在第一张幻灯片上画一个图形,然后立体化,利用一下语句实现3D旋转:(物体绕Y轴旋转225度后又回来) Dim a As Slide Dim b As Shape Set a = ActivePresentation.Slides(1) Set b = a.Shapes(1) For i = 1 To 225 t1 = Timer While Timer - t1 0.04 DoEvents Wend b.ThreeD.IncrementRotationY 0.4 Next For i = 1 To 225 t1 = Timer While Timer - t1 0.04 DoEvents Wend b.ThreeD.IncrementRotationY -0.4 Next End Sub VBA里面有个代码可以控制图形的InCameraRotation的数值,顾名思义,In Camera Rotation的中文意思就是在摄像机镜头内的旋转,也就是三维旋转,其中InCameraRotationX n代表绕X轴旋转n度InCameraRotationY n 代表绕Y轴旋转n度在PPT2003中,绕Z轴旋转的代码是InCameraRotation n 在PPT2007中,绕Z轴旋转的代码是InCameraRotationZ n 那么,我们可以将幻灯片中的某个图形执行这个代码,比如说第一个图形执行InCameraRotationX 1,执行一次后,图形绕X轴旋转1度。如果总是执行这个代码呢?图形旋转1度后又旋转1度,总是这样,不就形成了3D旋转吗?为此,术士增加了一个循环语句:For i=1 to 225,也就是从1循环到225度。但是电脑执行速度会非常快,我们根本看不到从1度到225的变化,也就是说,执行后,一瞬间,物体就从1变成了225度,所以为了解决这个难题,术士增加了一个While语句,设置一个计时器来控制每次循环的时间:t1 = Timer While Timer - t1 0.1 DoEvents Wend 其中0.1是每隔多少秒旋转1度。时间越小,动画就会越连贯,推荐使用0.04秒。那么这样就实现了3D旋转。基础代码如下Dim a As Slide Dim b As Shape Set a = ActivePresentation.Slides(1) Set b = a.Shapes(1) For i = 1 To 225 t1 = Timer While Timer - t1 0.1 DoEvents Wend b.ThreeD.IncrementRotationY 0.4 Next End Sub 纯VBA方法二:2003版VBA里面有个复制粘贴的代码,如果将原图形复制粘贴一份,并利用3D旋转的VBA代码旋转1次,再删除原图形,如此循环,那么就行成了3D旋转动画。代码如下:(同样地,按方法一那样先在第一个幻灯片内化一个3D矩形) Sub Duplicate() Dim a As Slide Dim b As Shape Set a = ActivePresentation.Slides(1) Set b = a.Shapes(1) For i = 0 To 50 With b.Duplicate .Top = 150 .ThreeD.IncrementRotationY i t = Timer While Timer - t 0.04 DoEvents Wend .Delete End With Next End Sub 利用Duplicate复制粘贴代码实现For i = 0 To 50/ 循环从0到50 With b.Duplicate /执行b(上面定义b为第一张幻灯片的第一个图形)的复制粘贴.Top = 150 / 在幻灯片页面150的高度处出现新复制粘贴的原图形.ThreeD.IncrementRotationY i/将原图形按Y轴旋转i度,也就是从0度到50度t = Timer / 将t作为计时器While Timer - t 0.04 / 设置时间为每隔0.04秒执行以上代码DoEvents /必要代码Wend /结束While语句.Delete /删除原图形End With /结束With语句Next /结束For语句方法三:VBA+自定义动画(2007版)3D旋转的宏代码:sub 1() ActivePresentation.Slides(1).Shapes(1).ThreeD.IncrementRotationX 1 end sub 代码解释sub 1() / 将宏命名为1 ActivePresentation.Slides(1).Shapes(1).ThreeD.IncrementRotationX 1/当前PPT的第1张幻灯片的第1个物体,在X轴旋转1度end sub /结束这个宏其中IncrementRotationX 1 可以改为ncrementRotationY 或者ncrementRotationZ,分别是绕Y轴和Z轴旋转,把1可以改为其他角度,默认为1好一点。例子:sub 1() ActivePresentation.Slides(1).Shapes(1).ThreeD.IncrementRotationX 1 ActivePresentation.Slides(1).Shapes(1).ThreeD.IncrementRotationY 1 ActivePresentation.Slides(1).Shapes(1).ThreeD.IncrementRotationZ 1 end sub 执行一次后:第一张幻灯片的第一个图形绕XYZ轴旋转1度。那么如何实现无限执行该代码呢?用一个形状,设置鼠标接触的动作,然后在这个动作中设置这个宏让这个形状快速闪烁,然后鼠标接触在上面,就会无限触发这个宏,从而实现了动画的执行。综上所述:所有的这些3D旋转都是以3D物体的原平面图形的中心作为旋转中心,也就是说,一个长方体,他的原平面图形就是矩形,3D旋转中心就是按这个矩形的中心,而不是立方体的中心,这样
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国岳阳楼记工艺品行业投资前景及策略咨询研究报告
- 2025年高山香茶行业深度研究报告
- 2025年调速型侧吹格栅出风口行业深度研究报告
- 家庭与社会的2025年社会学概论试题及答案
- 2025财务管理必考题分析试题及答案
- 2025年工程法规题型创新研究试题及答案
- 工程法规考试新手指南试题及答案
- 2025年财务管理考试调整策略试题及答案
- 分家遗产书面协议书
- 利用资质招标协议书
- 电力工程技术投标文件
- 消防工程监理细则范本
- 食堂采购验收表
- 月工程进度款报审表
- 独角仙介绍精品课件
- 抗病毒药物讲稿
- 主动脉内球囊反搏(IABP)课件
- 关键特殊过程监控记录表
- 配电变压器调档施工技术方案
- 预防性健康检管理制度管理办法
- 英汉语法对比研究
评论
0/150
提交评论