CATransform3D中m34字段的取值含义

转载自:http://zhidao.baidu.com/link?url=OlVQoGOKIBmaXKgQisOLtzliTLPvreOOsRmny3yebA1Wb6-B3KtuKlRXmv0tO3y4S1rVjs8Ie-0EKSCfMzkN5V1mo2nmoSzFm33L9r7-_KG

我也不能解释的很清楚,说的不对的其他童鞋指正下:

transform的结构如下:struct CATransform3D{  CGFloat m11, m12, m13, m14;  CGFloat m21, m22, m23, m24;  CGFloat m31, m32, m33, m34;  CGFloat m41, m42, m43, m44;};

首先要实现view(layer)的透视效果(就是近大远小),是通过设置m34的:

CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;rotationAndPerspectiveTransform.m34 = 1.0 / -500;

m34负责z轴方向的translation(移动),m34= -1/D,  默认值是0,也就是说D无穷大,这意味layer in projection plane(投射面)和layer in world coordinate重合了。

D越小透视效果越明显。

所谓的D,是eye(观察者)到投射面的距离。
时间: 2024-11-05 02:05:22

CATransform3D中m34字段的取值含义的相关文章

Django2.0中的on_delete字段取值含义

在Django的2.0版本中,外键字段 ForeignKey 和一对一字段 OneToOneField 都必须设置 on_delete 属性,否则会有以下报错: TypeError: __init__() missing 1 required positional argument: 'on_delete' 对于on_delete字段的取值含义如下: on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为 on_delete=models.CASCADE, #

关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)

先看一段推理<*一切都是在8个比特位的前提下,讨论二进制的符号位,溢出等等,才有意义*> +124:0111 1100 -124:1000 0100 +125:0111 1101 -125:1000 0011 +126:0111 1110 -126:1000 0010 +127:0111 1111 -127:1000 0001 +128:0 1000 0000   -128:1000 0000 从上述过程对比可以看出:+128是在127的基础上加1得到,但是会造成溢出(JAVA中byte的大小

mysql修改表中某个字段的默认值

Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结 在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿.这些操作可以在phpmyadmin或者别的mysql管理工具中完成,但是我们有时为了更方便的管理,会选择写sql语句来实现. 1.增加一个字段  代码如下 复制代码 //增加一个字段,默认为空alter table user add COLUMN new1 VA

Django的model中日期字段设置默认值的问题

之前写过这样一个model: class MonthlyFeeMember(models.Model): worker = models.ForeignKey(Student, verbose_name=u"主检查人", related_name="as_monthly_fee_members") month = models.CharField(u'检查月份', max_length=10, default=get_current_month()) check_d

SSH中各种形式的取值方式

现在这个项目是用SSH来开发的,遇到很多取值方式,在此总结一下,因为一直在用,很容易弄混,取值有问题: JSP通过url参数值取值: 例如:http://127.0.0.1:8080/portal/login!toAddPag.action?keyCode=1234555 通过以下语句取值: <% String keyCode=request.getParameter("keyCode"); %> 在页面中显示值:有以下两种方式: 第一: <%=keyCode  %&

java中为什么byte的取值范围是-128到+127

概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数.正数补码为其本身:负数补码为其绝对值各位取反加1:例如:+21,其二进制表示形式是00010101,则其补码同样为00010101-21,按照概念其绝对值为00010101,各位取反为11101010,再加1为11101011,即-21的二进制表示形式为11101011 步骤:1.byte为一字节8位,最高位是符号位,即最大值是01111111,因正数的补码是其本身,即此正数为0111111

mysql替换表中某字段的某值

UPDATE cases SET case_desc = replace(case_desc, 'src="//tuku-assets.m.jia.com/assets/img/m-integrate/loading_rec2_fb03b99cb0d6521754460047a72d01a7.jpg"', '') 修改 cases表中case_desc字段的src="//tuku-assets.m.jia.com/assets/img/m-integrate/loading_

angularjs环境中为Tinymce编辑器取值或赋值

Tinymce版本,5.2.1 html: 取值或赋值, 方法1: 方法2: 原文地址:https://www.cnblogs.com/insus/p/12677535.html

Maven POM中Dependency Scope取值含义

引自 http://my.oschina.net/boonya/blog/141276 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: * compile,缺省值,适用于所有阶段,会随着项目一起发布. * provided,类似compile,期望JDK.容器或使用者会提供这个依赖.如servlet.jar. * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段. * test