0
이 프로젝트에서 UIBezierPath를 사용하는 방법을 알아 내려고 노력했지만이 종류의 그리기를 구현하는 방법을 모르겠습니다. 나는 원과 호와 직선을 그릴 수 있지만,이 점에서 나는 꽤 상실감을 느낀다. 도움말 이해하기Swift에서 코사인 곡선이나 사인 곡선을 그리려면 어떻게해야합니까?
이 프로젝트에서 UIBezierPath를 사용하는 방법을 알아 내려고 노력했지만이 종류의 그리기를 구현하는 방법을 모르겠습니다. 나는 원과 호와 직선을 그릴 수 있지만,이 점에서 나는 꽤 상실감을 느낀다. 도움말 이해하기Swift에서 코사인 곡선이나 사인 곡선을 그리려면 어떻게해야합니까?
UIBezierPath
에 path
이라는 사인파를 그리려면 path.addLine(to:)
을 사용하여 여러 개의 선분을 그립니다. 트릭은 각도 (0
~ 360
)를 점의 x
좌표로 변환하고 sin(x)
을 점의 좌표 y
으로 변환하는 것입니다. 여기
class SineView: UIView{
let graphWidth: CGFloat = 0.8 // Graph is 80% of the width of the view
let amplitude: CGFloat = 0.3 // Amplitude of sine wave is 30% of view height
override func draw(_ rect: CGRect) {
let width = rect.width
let height = rect.height
let origin = CGPoint(x: width * (1 - graphWidth)/2, y: height * 0.50)
let path = UIBezierPath()
path.move(to: origin)
for angle in stride(from: 5.0, through: 360.0, by: 5.0) {
let x = origin.x + CGFloat(angle/360.0) * width * graphWidth
let y = origin.y - CGFloat(sin(angle/180.0 * Double.pi)) * height * amplitude
path.addLine(to: CGPoint(x: x, y: y))
}
UIColor.black.setStroke()
path.stroke()
}
}
let sineView = SineView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
sineView.backgroundColor = .white
가 운동장에 실행 :
는 @ 롭 갱신이 코드 @IBInspectable
특성으로 @IBDesignable
을 여기