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