[swift] Swift Core Graphics로 경로 그리기

Swift에서 Core Graphics를 사용하면 강력한 그래픽 렌더링 기능을 사용할 수 있습니다. 이 기능을 사용하여 그래픽 애플리케이션 또는 사용자 지정 그래픽을 만들고 조작할 수 있습니다. 이 포스트에서는 Swift로 경로를 그리는 방법에 대해 살펴보겠습니다.

1. 준비 작업

먼저, CoreGraphics 모듈을 가져와야 합니다.

import CoreGraphics

2. 기본적인 경로 그리기

아래는 원을 그리는 간단한 예제 코드입니다.

func drawCircle() {
    let renderer = UIGraphicsImageRenderer(size: CGSize(width: 100, height: 100))
    let img = renderer.image { ctx in
        let rectangle = CGRect(x: 0, y: 0, width: 100, height: 100)
        ctx.cgContext.setFillColor(UIColor.red.cgColor)
        ctx.cgContext.setStrokeColor(UIColor.green.cgColor)
        ctx.cgContext.setLineWidth(5)
        ctx.cgContext.addEllipse(in: rectangle)
        ctx.cgContext.drawPath(using: .fillStroke)
    }
}

위 코드에서는 UIGraphicsImageRenderer를 사용하여 이미지를 렌더링하고 있습니다. 경로를 만들고 색상, 선의 굵기 등을 설정한 후 drawPath(using: .fillStroke)로 경로를 채우고 그릴 수 있습니다.

3. 사용자 지정 경로 만들기

원뿐만 아니라 사용자 지정 형태의 경로도 만들 수 있습니다. 아래는 사용자 지정 경로를 만들고 그리는 예제 코드입니다.

func drawCustomPath() {
    let renderer = UIGraphicsImageRenderer(size: CGSize(width: 100, height: 100))
    let img = renderer.image { ctx in
        let path = UIBezierPath()
        path.move(to: CGPoint(x: 50, y: 0))
        path.addLine(to: CGPoint(x: 100, y: 100))
        path.addLine(to: CGPoint(x: 0, y: 100))
        path.close()
        
        ctx.cgContext.setFillColor(UIColor.blue.cgColor)
        ctx.cgContext.setStrokeColor(UIColor.yellow.cgColor)
        ctx.cgContext.setLineWidth(3)
        ctx.cgContext.addPath(path.cgPath)
        ctx.cgContext.drawPath(using: .fillStroke)
    }
}

위 코드에서는 UIBezierPath를 사용하여 사용자 지정 경로를 만들고 있습니다. move(to:), addLine(to:), close() 등의 메서드를 사용하여 원하는 모양의 경로를 만들 수 있습니다.

Core Graphics를 사용하면 경로를 그리고 조작하는 다양한 기능을 활용할 수 있으며, 사용자 지정 그래픽을 만들 수 있습니다. 이를 통해 애플리케이션의 그래픽과 사용자 인터페이스를 개선할 수 있습니다.

더 자세한 내용은 Apple 공식 문서를 참조하세요.