Swift 放大形状

问题描述

我有一个点数组 (CGPoint),通过这些点我在图像上画线,即:我在图像中有一个图形(通常是一个正方形),在给定的点上我画了一个图形(通常,也是一个正方形)在图像中的正方形内,点设置为沿着正方形的内边界。

问题是我对点本身的计算有点错误,并且正方形的内边界(在图像本身上)和我绘制的线(按点)之间存在空间。是否有可能以某种方式将点数组 (CGPoint) 移动几个位置,以便我绘制的线和正方形的内边界相接触?或者是否只需要重新定义已经接触的新点数组?

为了不重新计算点,我尝试为我绘制的线条设置一个笔触(笔触颜色)(因此我试图完成我的线条和正方形边界之间的空间),一切都会好起来的,但这是我的线条内侧的 50% 中风,我不能仅从外侧进行。 Mb 你能帮我这个吗

func draw(points: [CGPoint],image: UIImage) -> UIImage? {
    UIGraphicsBeginImageContext(image.size)
    image.draw(in: CGRect(x: 0,y: 0,width: image.size.width,height: image.size.height))

    guard let context = UIGraphicsGetCurrentContext() else { return nil }
    context.setLineWidth(5.0)

    context.beginPath()
    var oldPoint = points[0]
    context.move(to: oldPoint)
    for index in 1...points.count-1 {
        context.addLine(to: points[index] as CGPoint)
        oldPoint = points[index] as CGPoint
    }
    context.addLine(to: points[0])
          
    context.closePath()
    
    UIColor.init(rgb: 0xe1dfdf).setStroke()
    UIColor.red.withAlphaComponent(0.4).setFill()
    
    context.drawPath(using: .fillStroke)
    context.fillPath()
    
    guard let resultImage = UIGraphicsGetImageFromCurrentImageContext() else { return nil }
    
    UIGraphicsEndImageContext()
    return resultImage
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...