Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 应用透视变换而不旋转_Ios_Objective C_Core Animation_Catransform3d_Perspectives - Fatal编程技术网

Ios 应用透视变换而不旋转

Ios 应用透视变换而不旋转,ios,objective-c,core-animation,catransform3d,perspectives,Ios,Objective C,Core Animation,Catransform3d,Perspectives,我一直在尝试在UIView上执行透视变换。我一直在为此工作 但是,该示例在视图上应用旋转以及透视更改。有没有办法在不旋转的情况下更改视图的透视图?可能是这样的: 我一直在尝试移除旋转,但是当我进行透视变换时,并没有得到应用。我找不到任何关于仅仅改变视角的例子。提前感谢。如果不相对于您的视点进行任何旋转,透视图将不可见。即使在不旋转的情况下,透视图仍然会被应用,但它不会非常可见 另一个显示透视图的变换是沿Z方向平移,这使视图看起来像是在缩放 补充David的答案:要获得图像中的输出,您必须绕x轴

我一直在尝试在UIView上执行透视变换。我一直在为此工作

但是,该示例在视图上应用旋转以及透视更改。有没有办法在不旋转的情况下更改视图的透视图?可能是这样的:


我一直在尝试移除旋转,但是当我进行透视变换时,并没有得到应用。我找不到任何关于仅仅改变视角的例子。提前感谢。

如果不相对于您的视点进行任何旋转,透视图将不可见。即使在不旋转的情况下,透视图仍然会被应用,但它不会非常可见


另一个显示透视图的变换是沿Z方向平移,这使视图看起来像是在缩放

补充David的答案:要获得图像中的输出,您必须绕x轴(水平轴)旋转视图,以便视图矩形的上边缘看起来比下边缘“更远离”查看器,例如

CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -200;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;

@martinr我应用了你的技巧,我没有透视旋转。我有一个平面图(视图似乎到处都是相同的距离。)@VanDuTran:嗯,它是3D变换矩阵中的一个组件:)我不确定我是否能很好地解释它,而且无论如何,它太复杂了,无法发表评论。你应该在互联网上找到关于它的信息。我现在就开始工作了!然而,我得到了一个奇怪的效果。我有一个矩形,锚定点在底部中间。当我旋转矩形时,它看起来很好。但是,当我朝我旋转矩形时,矩形变得如此之大,以至于从屏幕上消失。。就好像要掉到我头上一样!你知道如何修复这个效果吗?好的,我知道了。0.34越小,产生的效果就越小。