gpt4 book ai didi

ios - 使用 strokeColor,从中心到圆周绘制一条线

转载 作者:行者123 更新时间:2023-11-28 07:48:58 25 4
gpt4 key购买 nike



我正在使用 swift 4。
我写了下面的代码并尝试用笔画画一个圆。
但是,使用下面的代码我无法绘制我想要的圆。
问题是线是从圆心画到外围
(严格来说,是朝向'startAngle'属性的坐标点)。

我想擦掉这条线,我该怎么办?

(我准备了一张图片。)

class Something{

var line:[CAShapeLayer] = []
var path:[UIBezierPath] = []

func drawingNow(){
let layer = CAShapeLayer()
self.layer.addSublayer(layer)
self.line.append(layer)

let addPath: UIBezierPath = UIBezierPath()
addPath.move(to: CGPoint(x: 100, y: 100))
addPath.addArc(
withCenter: CGPoint(x: 100, y: 100),
radius: CGFloat(50),
startAngle: CGFloat(//someangle),
endAngle: CGFloat(//someangle),
clockwise: true
)

self.path.append(addPath)

//self.line.last!.strokeColor = etc... (If don't use "override func draw()")
self.line.last!.fillColor = UIColor.clear.cgColor
self.line.last!.path = addPath.cgPath

self.setNeedsDisplay()
}

override func draw(_ rect: CGRect) {
if self.path.count != 0{
UIColor.orange.setStroke()
self.path.last!.stroke()
}
}
}

Image

最佳答案

调用addPath.move(to: CGPoint(x: 100, y: 100))后,UIBezierPath移动到指定坐标。现在您要告诉它添加一个圆弧 从那里 中心为 (100, 100)。以(100, 100)为圆心画圆弧,首先需要向圆周移动。但此时它已经开始绘图了! addArc 就是这样工作的。 addLine 也是如此。看docs :

This method adds the specified arc beginning at the current point.

所以圆弧总是从当前点开始,即 (100, 100)。

与其告诉它先移动到中心,不如告诉它通过移除 move(to:)` 线来绘制弧线。

关于ios - 使用 strokeColor,从中心到圆周绘制一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50197212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com