前言:
在看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维空间垂直这个面的一个向量.反正就是垂直于一个面的向量.数学里貌似叫垂直向量.