๐Ÿ’œVehicle.CarBodyShape

โฌ†๏ธ ้œ€่ฆ๏ผš Vector2D, Rectangular

// 2022.02.10

import SwiftUI

extension Vehicle {
    /// `Vehicle.CarBodyShape`
    struct CarBodyShape: Shape {
        
        // relative points in rect
        let A : UnitPoint = [0  , 1  ]        // ๐Ÿ…ฟ๏ธ Vector2D
        let B : UnitPoint = [1  , 0.8]
        let C1: UnitPoint = [0.1, 0.4]        // control points
        let C2: UnitPoint = [0.2, 0.5]
        
        let C : UnitPoint = [0.8, 1]
        let C3: UnitPoint = [0.9, 1]          // control points
        let C4: UnitPoint = [1  , 1]
        
        func path(in rect: CGRect) -> Path {
            Path { path in
                // move to A
                path.move(to: rect[A])        // ๐Ÿ…ฟ๏ธ Rectangular
                // add curve to B
                path.addCurve(to: rect[B], control1: rect[C1], control2: rect[C2])
                // add curve to C
                path.addCurve(to: rect[C], control1: rect[C3], control2: rect[C4])
                // add line back to A
                path.closeSubpath()
            }
        }
    }
}

Last updated