Ios 图层旋转:CGAffineTranslate、CGAffineTranslate和AVmutableVideoComposition图层构造

Ios 图层旋转:CGAffineTranslate、CGAffineTranslate和AVmutableVideoComposition图层构造,ios,macos,cgaffinetransform,rotatetransform,avmutablecomposition,Ios,Macos,Cgaffinetransform,Rotatetransform,Avmutablecomposition,几天来我一直在试图解决这个问题,显然我就是无法得到仿射变换 基本上,我想把一部电影旋转90度。这里有一个很好的例子: 但这只适用于第一次旋转,而我想将它从纵向旋转到横向,再旋转到纵向,再旋转到横向 无论我做了什么,我都得到了非常奇怪的结果。不幸的是,即使经过大量阅读,我对仿射变换的理解显然也没有提高 所以我基本上是要求一个算法的布局,它将 将AVMutableVideoComposition的图层旋转90度, 无论其当前方向如何。 应用平移将层移动到中心。 每次我点击一个按钮时都应该调用它 但不

几天来我一直在试图解决这个问题,显然我就是无法得到仿射变换

基本上,我想把一部电影旋转90度。这里有一个很好的例子:

但这只适用于第一次旋转,而我想将它从纵向旋转到横向,再旋转到纵向,再旋转到横向

无论我做了什么,我都得到了非常奇怪的结果。不幸的是,即使经过大量阅读,我对仿射变换的理解显然也没有提高

所以我基本上是要求一个算法的布局,它将

将AVMutableVideoComposition的图层旋转90度, 无论其当前方向如何。 应用平移将层移动到中心。 每次我点击一个按钮时都应该调用它

但不管我怎么做,图层都会正确旋转,但平移会将图层移出中心。正确的方法是什么

但不管我怎么做,图层都会正确旋转,但平移会将图层移出中心。正确的方法是什么

正确的方法是使用两个变换:一个旋转,一个平移。在处理开始时,通过在处理开始时指定当前变换,确保设置了当前位置。然后,创建两个独立的变换-一个用于旋转,另一个用于平移。您可以“concat”这两个转换以创建一个执行这两个操作的新转换,但如果您希望转换“就地”运行,请确保在应用新转换之前重新设置原始转换