簡體   English   中英

如何繪制給定長度和角度的直線?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM