iOS 变换- QuartzCore

前言:

在看iOS 核心动画的时候发现了很多自己之前不知道一些概念和变换过程.其中有一个3D图形 的光影遇到了问题这里获得了解决方法给大家分享一下.
前提是用6个view 添加位移以及rotate变化拼成一个正方体(光说大家可能不太理解)


  • 六个View,center在父视图的center
  • 通过CATransform3DMarkTranslation(tx,ty,tz) 以及 CATransform3DRotate(transform,angle,x,y,z) 来平移和旋转构成一个正方体.然而平面上看只是一个View而已
  • 接下来设置父视图的透 视投影 transform.m34 设置 以及sublayerTransform来使子视图共享一个灭点. m34如果不不理解或者对灭点有问题.请留言.今天主要讲变换出现的问题.
  • 将整个正方形向左向下转45度看到3D样式.如下图
    未做光阴效果
    看到他的边界不是很明显,所以用光线效果来区分.

光线效果

Core Animation 可用3D显示图层,但是却对光线无概念.那动态创建光线效果是什么原理? 运用了alpha 一个透明度 ,可以想象成一个alpha 在变化的黑色,怎么确定到底一个面上有多大程度的光亮,有多黑即alpha 是多少,用一个草图来表现
示意图
画的不是很好 蓝色的是一个面, 红色是面上的任意一条直线. 与他垂直指的是3维空间垂直这个面的一个向量.反正就是垂直于一个面的向量.数学里貌似叫垂直向量.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值