use*_*881 4 iphone uiimageview cgaffinetransform ios
我试图扭曲一个矩形,使两个垂直边倾斜但平行,顶部和底部是水平的.
我正在尝试使用CGAffineTransform并找到了这个代码,但我不知道要在各个部分放什么.
imageView.layer.somethingMagic.imageRightTop = (CGPoint){ 230, 30 };
imageView.layer.somethingMagic.imageRightBottom = (CGPoint){ 300, 150 };
#define CGAffineTransformDistort(t, x, y) (CGAffineTransformConcat(t, CGAffineTransformMake(1, y, x, 1, 0, 0)))
#define CGAffineTransformMakeDistort(x, y) (CGAffineTransformDistort(CGAffineTransformIdentity, x, y))
Run Code Online (Sandbox Code Playgroud)
虽然据说很容易,但我不知道在不同的地方放什么.
我假设图像视图将是我想要改变的图像,但是什么会变成什么样的魔法.和imageRightTop和imageRightBottom.
另外我如何定义t.
如果有一个更彻底的解释我会很感激,因为在大多数情况下我只发现这是解释如何扭曲矩形.
谢谢
假设你有一个名为imageView持有对你的引用的变量UIImageView.
我写了一些示例来演示如何获得此行为.这段代码的作用是创建一个新CGAffineTransform矩阵.该矩阵具有与身份变换矩阵相同的值,但有一个例外:位置[2,1]处的值.该值由-function 的c参数CGAffineTransformMake控制,并控制沿x轴的剪切.您可以通过设置更改剪切量shearValue.
代码:
CGFloat shearValue = 0.3f; // You can change this to anything you want
CGAffineTransform shearTransform = CGAffineTransformMake(1.f, 0.f, shearValue, 1.f, 0.f, 0.f);
[imageView setTransform:shearTransform];
Run Code Online (Sandbox Code Playgroud)
这就是shearTransform-matrix的样子:
[1 0 0]
[0.3 1 0]
[0 0 1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2233 次 |
| 最近记录: |