如何绘制具有给定长度和角度的直线?

时间:2017-06-16 05:52:56

标签: ios swift uibezierpath drawrect

我必须画一条从0,0开始的直线,有一些长度和角度(从视图的顶部)。目前能够通过给出起点和终点而不是结束点来创建一条线,我必须使用角度和长度,任何帮助吗?

以下是代码:

select.input-field{padding: 2px 12px;}

1 个答案:

答案 0 :(得分:4)

有很多方法可以做到这一点。一种方法是从沿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))