gpt4 book ai didi

iOS - UIBezierPath 使起始角度始终垂直

转载 作者:行者123 更新时间:2023-11-29 01:07:47 24 4
gpt4 key购买 nike

enter image description here

嗨,我目前正在尝试制作圆的随机角度,但我喜欢起始角度始终是垂直的。在上图中,它显示了 180 度的圆,但起始角度是水平的,并且它根据我指定的角度而变化。所以基本上我希望圆的起点始终从 0 度或垂直处开始。有谁知道这个问题的解决办法吗?

这是我正在使用的代码。

let center = CGPointMake(size.width/2, size.height/2)

let path = UIBezierPath()
path.addArcWithCenter(center, radius: 200, startAngle: 0, endAngle: 180.degreesToRadians, clockwise: true)
path.addLineToPoint(center)
path.closePath()

let angleShape = SKShapeNode(path: path.CGPath)
angleShape.strokeColor = UIColor(red: 0.203, green: 0.596, blue: 0.858, alpha: 1.0)
angleShape.fillColor = UIColor(red: 0.203, green: 0.596, blue: 0.858, alpha: 1.0)
addChild(angleShape)

最佳答案

改变这个:

path.addArcWithCenter(center, radius: 200, startAngle: 0, endAngle: 180.degreesToRadians, clockwise: true) 

为此:

path.addArcWithCenter(center, radius: 200, startAngle: CGFloat(M_PI_2), endAngle: CGFloat(M_PI + M_PI_2), clockwise: true)

如果你想要一个随机的 startAngleendAngle 试试这个

func randomRange(min min: CGFloat, max: CGFloat) -> CGFloat {
assert(min < max)
return CGFloat(Float(arc4random()) / 0xFFFFFFFF) * (max - min) + min
}

let startAngle = randomRange(min: CGFloat(0), max: CGFloat(M_PI*2))
let endAngle = randomRange(min: CGFloat(0), max: CGFloat(M_PI*2))

path.addArcWithCenter(center, radius: 200, startAngle: startAngle, endAngle: endAngle, clockwise: true)

enter image description here

关于iOS - UIBezierPath 使起始角度始终垂直,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36141878/

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