gpt4 book ai didi

ios - 如何画一条给定长度和角度的直线?

转载 作者:可可西里 更新时间:2023-11-01 00:40:25 25 4
gpt4 key购买 nike

我必须绘制一条从 0,0 开始的直线,具有一定的长度和角度(从 View 的顶部)。目前能够通过给出起点和终点来创建一条线,但我必须使用角度和长度而不是终点,有什么帮助吗?

代码如下:

let path = UIBezierPath()
path.move(to: CGPoint(x: 0, y: 0))
path.addLine(to: CGPoint(x: 0+10, y: 0+10))

let shapeLayer = CAShapeLayer()
shapeLayer.path = path.cgPath
shapeLayer.strokeColor = UIColor.blue.cgColor
shapeLayer.lineWidth = 3.0

最佳答案

有很多方法可以做到这一点。一种方法是从沿 Y 轴的单位长度线开始。将线旋转到所需的角度并将其缩放到所需的长度。示例:

let angleInRadians: CGFloat = ...
let length: CGFloat = ...
let path = UIBezierPath()
path.move(to: .zero)
path.addLine(to: CGPoint(x: 0, y: 1))
path.apply(.init(rotationAngle: angleInRadians))
path.apply(.init(scaleX: length, y: length))

另一种方法是直接使用三角函数计算直线的非原点端点:

let angleInRadians: CGFloat = ...
let length: CGFloat = ...
let path = UIBezierPath()
path.move(to: .zero)
path.addLine(to: CGPoint(x: -sin(angleInRadians) * length, cos(angleInRadians) * length))

关于ios - 如何画一条给定长度和角度的直线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581730/

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