旋转中心的位置可以通过设置CenterOfRotationX、CenterOfRotationY和CenterOfRotationZ属性来指定。CenterOfRotationX和CenterOfRotationY属性的默认值都是0.5,表示旋转轴正好位于旋转对象的中心。当这两个属性值为0和1时,表示旋转中心处在旋转对象的一组对边上,即将旋转中心移到旋转对象的外边沿,旋转对象将会绕其外边沿旋转。当这两个属性值的范围在0和1之间时,表示旋转中心处于旋转对象的特定位置,若超出这个范围,则根据超出值大小相应的将旋转中心移出旋转对象。CenterOfRotationZ属性的默认值是0,表示旋转中心在旋转对象的中心,可以对其赋正值或负值,使旋转中心移到旋转对象的正面或背面。

通过设置CenterOfRotationX属性值可以将旋转中心沿X轴并平行于Y轴移动,同理通过设置CenterOfRotationY属性值可以将旋转中心沿Y轴并平行于X轴移动。下面看一下不同的CenterOfRotationY属性值对3D效果的影响,如图10-10所示。

 CenterOfRotationY = "0.5" (默认值)                        CenterOfRotationY = "0.1"

图10-10 CenterOfRotationY属性效果

接下来介绍如何改变CenterOfRotationX的属性值移动旋转中心,从而使界面元素绕着指定的旋转中心进行旋转。

启动Visual Studio 2012,新建一个Windows应用商店的空白应用程序项目,将其命名为3DCenterOfRotationApp,首先在项目的Assets文件夹下添加一个名为“Windows 8.png”的图片,双击打开此页面的3DCenterOfRotationApp.xaml文件,使用如下代码替换原有的Grid元素。

<Grid Background="Gray">

    <StackPanel  Width="240" Height="240" Background="White" >

        <Image  Width="240" Height="240" Source="/Assets/Windows 8.png">

            <Image.Projection>

                <PlaneProjection CenterOfRotationX="0.9" RotationY="45"/>

</Image.Projection>

        </Image>

    </StackPanel>

</Grid>

上面的代码与之前介绍的示例代码类似,不同的是本示例把PlaneProjection元素的CenterOfRotationX属性值设置为0.9,表示将旋转中心沿X轴并平行于Y轴向右移动到图片的右边缘,接着将RotationY属性值设置为45度,这样图片将绕Y轴顺时针旋转45度。

按下F5运行程序,会产生如图10-11所示的3D效果。

 

图10-11 绕指定旋转中心旋转的3D效果图

由于旋转中心的设置很类似这里仅以CenterOfRotationX属性为例进行了讲解,有兴趣的读者可以在上面示例的基础上修改PlaneProjection的属性值,感受不同的3D效果。

最新文章

  1. Thinking in Unity3D
  2. 【面试题】M
  3. 使用awk统计字段重复实践
  4. sql里Where条件顺序
  5. AngularJS与RequireJS集成方案
  6. POJ 1986 Distance Queries (最近公共祖先,tarjan)
  7. HDFS dfsclient写文件过程 源码分析
  8. Extjs4 treePanel异步加载菜单(后台从数据库读取)
  9. C#.net时间戳转换
  10. 使用Sublime Text搭建python调试环境
  11. 望大神批评教育国庆无聊之作:ObjectValidator
  12. Objective-C之run loop详解
  13. drawRect &amp; 内存 -&gt; 深究
  14. JS中的 map, filter, some, every, forEach, for...in, for...of 用法总结
  15. JS和Jquery操作label标签
  16. 关于读取excel 和 写excel
  17. PHP获取网络图片并保存在本地目录
  18. SQLSERVER 数据从一张那个表复制到另一张表
  19. 出现 org.springframework.beans.factory.BeanCreationException 异常的原因及解决方法
  20. SBT树

热门文章

  1. EBS创建相应的用户
  2. IOS asc码替换
  3. 复制 replication 新增表 add new article
  4. cxf(3.1.1) 客户端异常 请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。
  5. iOS中UIWebView与其中网页的javascript的交互
  6. WLST 命令和变量
  7. iconfont-矢量图标字体的运用
  8. 一个用php写的人民币数字转人民币大写的函数
  9. 有向图的强连通图——Kosaraju
  10. python学习之if语句