Iphone 修改UIBezierPath的模式透视图

Iphone 修改UIBezierPath的模式透视图,iphone,ios,objective-c,Iphone,Ios,Objective C,我正在做一个项目,我需要点击图像创建一个封闭的UIBezierPath。 关闭路径后,我在路径内绘制一个图案。 使用底部的滑块,我可以设置填充路径的图案的缩放级别。 我现在正在研究模式的透视失真,但我无法得到它 模式是这样创建的 UIImage *originalImage = [UIImage imageNamed:@"tegole.jpg"]; UIImage *scaledImage = [UIImage imageWithCGImage:[originalImage CGImage]

我正在做一个项目,我需要点击图像创建一个封闭的UIBezierPath。 关闭路径后,我在路径内绘制一个图案。 使用底部的滑块,我可以设置填充路径的图案的缩放级别。 我现在正在研究模式的透视失真,但我无法得到它

模式是这样创建的

UIImage *originalImage = [UIImage imageNamed:@"tegole.jpg"];
UIImage *scaledImage = [UIImage imageWithCGImage:[originalImage CGImage]
                        scale:(originalImage.scale * _zoom)
                  orientation:(originalImage.imageOrientation)];
UIColor *patternImage = [UIColor colorWithPatternImage:scaledImage];
[patternImage setFill];
[_path fill];
有人对实现这一目标的更好方法有什么建议吗?
我在看opencv.framework?这能解决问题吗

我最近也在做类似的事情,但我使用的是NSBezierPath而不是UIBezierPath。。。尽管它们应该是等价的。我想用位图图像填充六边形的内部。我正在用六边形瓷砖写一个电脑棋盘游戏

我创建了一个六边形路径,如下所示:

    let path = NSBezierPath()
    let rads = CGFloat(Double.pi) / 180.0
    var p = NSPoint(x: scale*cos(30 * rads) + x, y: scale*sin(30 * rads) + y)
    path.move(to: p)
    p = NSPoint(x: scale*cos(90 * rads) + x, y: scale*sin(90 * rads) + y)
    path.line(to: p)
    p = NSPoint(x: scale*cos(150 * rads) + x, y: scale*sin(150 * rads) + y)
    path.line(to: p)
    p = NSPoint(x: scale*cos(210 * rads) + x, y: scale*sin(210 * rads) + y)
    path.line(to: p)
    p = NSPoint(x: scale*cos(270 * rads) + x, y: scale*sin(270 * rads) + y)
    path.line(to: p)
    p = NSPoint(x: scale*cos(330 * rads) + x, y: scale*sin(330 * rads) + y)
    path.line(to: p)
    p = NSPoint(x: scale*cos(30 * rads) + x, y: scale*sin(30 * rads) + y)
    path.line(to: p)

    path.lineWidth = 3.5
。。。然后我简单地补充说:

    path.setClip()

    let mainBundle: Bundle = Bundle.main
    imagePath = mainBundle.pathForImageResource("Swatch1.png")!
    let gSwatch1 = NSImage(contentsOfFile:imagePath)!

    gSwatch1.draw(in: path.bounds)
…这将在六边形路径的边界内绘制图像“Swatch1.png”

您可以通过更改目标的边界矩形来缩放图像,但也可以使用NSAffineTransform等应用任何其他变换