[英]How to draw a straight line with the given length and angle?
我必須繪制一條從0,0開始的直線,並帶有一些長度和角度(從視圖頂部開始)。 當前能夠通過給定起點和終點來創建一條線,但是我必須使用角度和長度來代替終點,這有什么幫助嗎?
這是代碼:
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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.