草庐IT

CATransform3DMakeRotation

全部标签

ios - 如何使用多个变换为 CATransform3D 制作动画?

基本上,我围绕一个点旋转图层:CATransform3Dtransform=CATransform3DIdentity;transform.m34=1.0/-500;transform=CATransform3DTranslate(transform,rotationPoint.x-center.x,rotationPoint.y-center.y,0.0);transform=CATransform3DRotate(transform,(rotationAngleFor)*M_PI/180.0f,0.0,1.0,0);transform=CATransform3DTranslate(

iphone - 如何使 CATransform3dMakeRotation 以另一种方式旋转?并连在一起

我是第一次使用一些核心动画,在实现可以翻转的扑克牌的过程中,我决定使用CALayer来显示内容(不确定我将如何得到两侧,但这是另一个问题)我需要能够翻转它,移动它等等......我使用CATransaction取得了一些成功-在下面的代码片段中,卡片从左下角移动到左上角并翻转过来。问题是我不想让它朝相反的方向翻转,但不知道如何告诉它“嘿,你走错路了!”[CATransactionbegin];[CATransactionsetValue:[NSNumbernumberWithFloat:2.0f]forKey:kCATransactionAnimationDuration];myCar

ios - CATransform3D:计算透视变换后的高度

我有一个高度为50的层,我正在绕x轴旋转它。..如何计算旋转过程中的高度?CATransform3DsubLayerTransform=CATransform3DMakeTranslation(0,0,0);subLayerTransform.m34=-1/1800;//Howdoesheightrelatetoperspectiveandangle?subLayerTransform=CATransform3DTranslate(subLayerTransform,0,0,0);subLayerTransform=CATransform3DRotate(subLayerTransfo

objective-c - 为什么这种使用 CATransform3D 的转换会减小 View 的宽度?

看看下面的图像进展:这里发生的事情是,首先我选择了“棒球”,导致您看到的3个灰色View向左旋转,因此具有不同级别的View位于中间(第二张图片)。您可以看到此时View的宽度已大大减小。第三张图片是在点击包含运动名称的View后出现的,导致它旋转回中间。据我所知,当View旋转到中间时,View的宽度会减小。但我不知道为什么。这是相关代码。pos指的是所讨论的view所在的位置。0表示在中间,1表示在中间靠右,-1在中间靠左中间等-(void)perspectiveView:(MenuSection*)viewforPosition:(NSInteger)pos{CALayer*la

objective-c - 返回 CATransform3D 将四边形映射到四边形

我正在尝试派生一个CATransform3D,它将一个具有4个角点的四边形映射到另一个具有4个新角点的四边形。我花了一点时间研究这个,似乎这些步骤涉及将原始四边形转换为正方形,然后将该正方形转换为新的四边形。我的方法如下所示(代码借自here):-(CATransform3D)quadFromSquare_x0:(float)x0y0:(float)y0x1:(float)x1y1:(float)y1x2:(float)x2y2:(float)y2x3:(float)x3y3:(float)y3{floatdx1=x1-x2,dy1=y1-y2;floatdx2=x3-x2,dy2=y

iphone - CMAttitude 和 CATransform3D 是否与旋转矩阵相关?

我正在查看核心运动类CMAttitude,它可以将设备的方向表示为3x3旋转矩阵。同时,我查看了CATransform3D,它封装了View的姿态以及缩放。CATransform3D是一个4x4矩阵。我已经看到OpenGL旋转矩阵是4x4,并且只是在第4行和第4列中填充了0001。我想知道CMAttitude的旋转矩阵是否与CATransform的矩阵相关?我可以使用通过旋转矩阵获得的设备在空间中的旋转来使用CATransform3D转换UIView吗?我的意图是让用户移动手机并将相同的转换应用于屏幕上的UIView。奖励问题:如果它们相关,我如何将CMAttitude的旋转矩阵转换为

iphone - CATransform3D - 回到之前的状态

您好,我正在使用CATransform3D。每次我使用变量radian调用以下方法时,UIImageView都会从之前的角度旋转“radian*M_PI”。我试图回到原来的状态。有什么办法吗?我介意我想发送一个弧度值,即10,如果多次调用,View将保持这些角度。方法:CATransform3DrotatedTransform=self.needleB.layer.transform;rotatedTransform=CATransform3DRotate(rotatedTransform,radian*M_PI/180.0,0.0f,0.0f,1.0f);self.needleB.l

ios - 我能得到 CATransform3DIdentity 的基本解释吗?

我慢慢地对CoreAnimation越来越认真,并且非常感谢由简短的单词组成的解释(打字?)慢慢解释CATransform3DIdentity以及为什么以下代码会执行它的操作(在“3D”空间中翻转图层)kFaceUpTransform=kFaceDownTransform=CATransform3DIdentity;//Constructa180-degreerotationmatrix:kFaceDownTransform.m11=kFaceDownTransform.m33=-1;转念一想,打字速度快,多音节词随心所欲,但请轻声细语。附言。我的印象是,如果我想在动画方面走得更远,我

ios - 在 CATransformLayer iOS 中使用 CATransform3D 从右到左改变透视角度

我正在尝试绘制一个3dblock!使用2层,右侧在3d中看起来不错。见附图。当我尝试重用相同的代码对左侧进行较小的修改时!它看起来很奇怪。请参阅下面的附图,我觉得如果我们可以改变透视角度我们可以改进,但不知道如何实现。使用transform.m34进行透视。任何帮助将不胜感激。这是我正在使用的源代码。//leftBar/*{CGFloataViewWidth=1000;CAGradientLayer*blueLayer=[CAGradientLayerlayer];blueLayer.anchorPoint=P(0,0.5);blueLayer.colors=@[(id)aBarCol

iphone - 如何使用 CAKeyframeAnimation 为 CATransform3D 制作动画?

我已经使用CAKeyframeAnimations为图层的transform.rotation和transform.translation.x属性设置动画,但我在设置transform隐式属性。我有一个图层必须在两个状态之间进行动画处理,并且CABasicAnimation的默认插值完全不正确并且不遵循我想要的路径。CAKeyframeAnimation来拯救,或者我是这么想的。任何使用CAKeyframeAnimation对transform进行动画处理的尝试都会导致View在其他动画运行时立即捕捉到最终转换。如果我删除以下函数的前半部分并让我的“变换”事件使用底部的CABasicA