我正在尝试将Sprite转换为梯形,即使我知道没有插值,我的图像也会丢失细节,我并不十分在意插值。我真正想要做的就是将矩形Sprite转换成梯形,如下所示:
/ \
/ \
/__________\
有没有人用CGAffineTransforms或cocos2d做到这一点?
最佳答案
您要提出的转换并非仿射。 Affine transformations必须是不可撤消的。因此,他们通常可以:
但是他们不能“挤压”。请注意,梯形的左侧和右侧(如果延伸)将在特定位置相交。他们不再平行了。因此,您无法“撤消”转换,因为如果在该位置有任何要转换的内容,则无法确定它们将转换到的位置。换句话说,如果转换不保留并行性,它将挤压空间,无法撤消并且不仿射。
我对Core Animation的转换了解不多,所以我希望数学方面的东西能帮助您找到替代方案。
但是我确实知道如何在OpenGL中完成此操作,但这需要您重新开始如何绘制应用程序:
GL_RECT
,然后将精灵作为纹理映射到它上。 最简单的方法可能是在照片编辑器中预压缩图像,将其另存为具有透明性的.png,然后使用该图像绘制一个矩形。
关于ios - 如何将Sprite扭曲成梯形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2095824/