Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 1016 - カスタムシェイプ

時間があるときに少しずつ勉強しているので、忘れることも多い。でも、地道にやっていると少しずつではあるが確実に知識はついていっていると思うよ。

今日はSwiftUIで、カスタムシェイプの勉強をしてました。

SwiftUIでも、UIKitやSpriteKitでできることが基本的にできるので、カスタムシェープの扱いを勉強してました、どうやって円形を作るか基本的な知識の勉強です。

struct Circle: Shape {
    func path(in rect: CGRect) -> Path {
        var path = Path()
        let width = rect.width
        let height = rect.height
        let posX = rect.origin.x
        let posY = rect.origin.y
        let center = CGPoint(x: posX + width / 2, 
    y: posY + posY + height / 2)
        let radius = width / 2
        
        path.addArc(center: center, radius: radius, 
      startAngle: .degrees(0), 
      endAngle: Angle(radians: 2.0 * Double.pi), 
      clockwise: true)
        path.closeSubpath()
        
        
        return path
    }
}

これを描画するためにradiansの因数、staratAngleやendAngleに変数を渡さなければならないんですが、そこでAngle型の変数が必要なんですよが、いくつかバリエーションがあるんです:

// Angleの型のパラメーターを指定して与える方法に
// 次のように直接パラメーターを指定する方法
.degree(30)
// そして角度を与えるパラメーターとして型から与える方法
Angle(degree: 30)
// 更に ラディアスを因数として与えると次のようになる
Angle(radians: 2 * Double.pi / 2 ))

そうなんです。どれも同じ結果になるんですよね。プログラミングのスタイルは1つじゃないってこと。こういうことってプログラマーにっとって基本的な知識なんですが、素人にとって混乱するところ。人生に1つの答えは無いとの同じようにプログラミングにも1つの答えは1つじゃないってこと。色々考えながら進んで行きましょう。