Skip to content

Instantly share code, notes, and snippets.

@amosgyamfi
Last active May 18, 2024 14:35
Show Gist options
  • Save amosgyamfi/fd0d05e82a8b4d30f8761f21d9422ac7 to your computer and use it in GitHub Desktop.
Save amosgyamfi/fd0d05e82a8b4d30f8761f21d9422ac7 to your computer and use it in GitHub Desktop.
struct SignatureView: Shape {
func path(in rect: CGRect) -> Path {
var path = Path()
let width = rect.size.width
let height = rect.size.height
path.move(to: CGPoint(x: 0.24829*width, y: 0.85103*height))
path.addLine(to: CGPoint(x: 0.02337*width, y: 0.85103*height))
path.addCurve(to: CGPoint(x: 0, y: 0.82403*height), control1: CGPoint(x: 0.0105*width, y: 0.85103*height), control2: CGPoint(x: 0, y: 0.83889*height))
path.addCurve(to: CGPoint(x: 0.02337*width, y: 0.79733*height), control1: CGPoint(x: 0, y: 0.80947*height), control2: CGPoint(x: 0.0105*width, y: 0.79733*height))
path.addLine(to: CGPoint(x: 0.26303*width, y: 0.79733*height))
path.addCurve(to: CGPoint(x: 0.24829*width, y: 0.85103*height), control1: CGPoint(x: 0.25605*width, y: 0.81583*height), control2: CGPoint(x: 0.25103*width, y: 0.83392*height))
path.closeSubpath()
path.move(to: CGPoint(x: 0.45619*width, y: 0.85103*height))
path.addLine(to: CGPoint(x: 0.293*width, y: 0.85103*height))
path.addCurve(to: CGPoint(x: 0.30966*width, y: 0.79733*height), control1: CGPoint(x: 0.29592*width, y: 0.83433*height), control2: CGPoint(x: 0.30155*width, y: 0.81615*height))
path.addLine(to: CGPoint(x: 0.47918*width, y: 0.79733*height))
path.addCurve(to: CGPoint(x: 0.45619*width, y: 0.85103*height), control1: CGPoint(x: 0.4723*width, y: 0.81684*height), control2: CGPoint(x: 0.46461*width, y: 0.83485*height))
path.closeSubpath()
path.move(to: CGPoint(x: 0.99842*width, y: 0.82403*height))
path.addCurve(to: CGPoint(x: 0.97505*width, y: 0.85103*height), control1: CGPoint(x: 0.99842*width, y: 0.83889*height), control2: CGPoint(x: 0.98792*width, y: 0.85103*height))
path.addLine(to: CGPoint(x: 0.50655*width, y: 0.85103*height))
path.addCurve(to: CGPoint(x: 0.52713*width, y: 0.79733*height), control1: CGPoint(x: 0.51424*width, y: 0.83452*height), control2: CGPoint(x: 0.52105*width, y: 0.81646*height))
path.addLine(to: CGPoint(x: 0.97505*width, y: 0.79733*height))
path.addCurve(to: CGPoint(x: 0.99842*width, y: 0.82403*height), control1: CGPoint(x: 0.98792*width, y: 0.79733*height), control2: CGPoint(x: 0.99842*width, y: 0.80947*height))
path.closeSubpath()
path.move(to: CGPoint(x: 0.04123*width, y: 0.53975*height))
path.addLine(to: CGPoint(x: 0.08574*width, y: 0.59094*height))
path.addLine(to: CGPoint(x: 0.13025*width, y: 0.53975*height))
path.addCurve(to: CGPoint(x: 0.1573*width, y: 0.53975*height), control1: CGPoint(x: 0.13787*width, y: 0.53125*height), control2: CGPoint(x: 0.14942*width, y: 0.53095*height))
path.addCurve(to: CGPoint(x: 0.1573*width, y: 0.571*height), control1: CGPoint(x: 0.16492*width, y: 0.54884*height), control2: CGPoint(x: 0.16492*width, y: 0.56219*height))
path.addLine(to: CGPoint(x: 0.11285*width, y: 0.62212*height))
path.addLine(to: CGPoint(x: 0.1573*width, y: 0.67324*height))
path.addCurve(to: CGPoint(x: 0.1573*width, y: 0.70449*height), control1: CGPoint(x: 0.16492*width, y: 0.68174*height), control2: CGPoint(x: 0.16492*width, y: 0.69539*height))
path.addCurve(to: CGPoint(x: 0.13025*width, y: 0.70449*height), control1: CGPoint(x: 0.14942*width, y: 0.71329*height), control2: CGPoint(x: 0.13787*width, y: 0.71329*height))
path.addLine(to: CGPoint(x: 0.08574*width, y: 0.6533*height))
path.addLine(to: CGPoint(x: 0.04123*width, y: 0.70449*height))
path.addCurve(to: CGPoint(x: 0.01418*width, y: 0.70449*height), control1: CGPoint(x: 0.03361*width, y: 0.71299*height), control2: CGPoint(x: 0.02206*width, y: 0.71329*height))
path.addCurve(to: CGPoint(x: 0.01418*width, y: 0.67324*height), control1: CGPoint(x: 0.00657*width, y: 0.69539*height), control2: CGPoint(x: 0.00657*width, y: 0.68204*height))
path.addLine(to: CGPoint(x: 0.05863*width, y: 0.62212*height))
path.addLine(to: CGPoint(x: 0.01418*width, y: 0.571*height))
path.addCurve(to: CGPoint(x: 0.01418*width, y: 0.53975*height), control1: CGPoint(x: 0.00657*width, y: 0.5625*height), control2: CGPoint(x: 0.00657*width, y: 0.54884*height))
path.addCurve(to: CGPoint(x: 0.04123*width, y: 0.53975*height), control1: CGPoint(x: 0.02206*width, y: 0.53095*height), control2: CGPoint(x: 0.03361*width, y: 0.53095*height))
path.closeSubpath()
path.move(to: CGPoint(x: 0.33456*width, y: 0.99787*height))
path.addCurve(to: CGPoint(x: 0.56329*width, y: 0.53883*height), control1: CGPoint(x: 0.47216*width, y: 0.99787*height), control2: CGPoint(x: 0.56329*width, y: 0.79612*height))
path.addCurve(to: CGPoint(x: 0.34454*width, y: 0.14411*height), control1: CGPoint(x: 0.56329*width, y: 0.31826*height), control2: CGPoint(x: 0.47794*width, y: 0.14411*height))
path.addCurve(to: CGPoint(x: 0.1938*width, y: 0.33465*height), control1: CGPoint(x: 0.25972*width, y: 0.14411*height), control2: CGPoint(x: 0.1938*width, y: 0.22755*height))
path.addCurve(to: CGPoint(x: 0.43041*width, y: 0.68659*height), control1: CGPoint(x: 0.1938*width, y: 0.48756*height), control2: CGPoint(x: 0.29911*width, y: 0.61863*height))
path.addCurve(to: CGPoint(x: 0.44144*width, y: 0.68962*height), control1: CGPoint(x: 0.43435*width, y: 0.68902*height), control2: CGPoint(x: 0.43776*width, y: 0.68962*height))
path.addCurve(to: CGPoint(x: 0.46192*width, y: 0.66748*height), control1: CGPoint(x: 0.45326*width, y: 0.68962*height), control2: CGPoint(x: 0.46192*width, y: 0.679*height))
path.addCurve(to: CGPoint(x: 0.44958*width, y: 0.64593*height), control1: CGPoint(x: 0.46192*width, y: 0.65898*height), control2: CGPoint(x: 0.45824*width, y: 0.65109*height))
path.addCurve(to: CGPoint(x: 0.23845*width, y: 0.33465*height), control1: CGPoint(x: 0.36161*width, y: 0.59769*height), control2: CGPoint(x: 0.23845*width, y: 0.48968*height))
path.addCurve(to: CGPoint(x: 0.34454*width, y: 0.19539*height), control1: CGPoint(x: 0.23845*width, y: 0.25607*height), control2: CGPoint(x: 0.28466*width, y: 0.19539*height))
path.addCurve(to: CGPoint(x: 0.51865*width, y: 0.53883*height), control1: CGPoint(x: 0.45089*width, y: 0.19539*height), control2: CGPoint(x: 0.51865*width, y: 0.35042*height))
path.addCurve(to: CGPoint(x: 0.33981*width, y: 0.9466*height), control1: CGPoint(x: 0.51865*width, y: 0.76153*height), control2: CGPoint(x: 0.44302*width, y: 0.9466*height))
path.addCurve(to: CGPoint(x: 0.28913*width, y: 0.88441*height), control1: CGPoint(x: 0.30515*width, y: 0.9466*height), control2: CGPoint(x: 0.28913*width, y: 0.92051*height))
path.addCurve(to: CGPoint(x: 0.6313*width, y: 0.55613*height), control1: CGPoint(x: 0.28913*width, y: 0.77154*height), control2: CGPoint(x: 0.43146*width, y: 0.55613*height))
path.addCurve(to: CGPoint(x: 0.65415*width, y: 0.57464*height), control1: CGPoint(x: 0.64601*width, y: 0.55613*height), control2: CGPoint(x: 0.65415*width, y: 0.56281*height))
path.addCurve(to: CGPoint(x: 0.63708*width, y: 0.67142*height), control1: CGPoint(x: 0.65415*width, y: 0.6074*height), control2: CGPoint(x: 0.63708*width, y: 0.63744*height))
path.addCurve(to: CGPoint(x: 0.677*width, y: 0.71541*height), control1: CGPoint(x: 0.63708*width, y: 0.69964*height), control2: CGPoint(x: 0.65467*width, y: 0.71541*height))
path.addCurve(to: CGPoint(x: 0.85452*width, y: 0.57767*height), control1: CGPoint(x: 0.74344*width, y: 0.71541*height), control2: CGPoint(x: 0.82537*width, y: 0.57767*height))
path.addCurve(to: CGPoint(x: 0.92936*width, y: 0.70116*height), control1: CGPoint(x: 0.88209*width, y: 0.57767*height), control2: CGPoint(x: 0.84795*width, y: 0.70116*height))
path.addCurve(to: CGPoint(x: 0.97321*width, y: 0.68689*height), control1: CGPoint(x: 0.94275*width, y: 0.70116*height), control2: CGPoint(x: 0.95929*width, y: 0.6969*height))
path.addCurve(to: CGPoint(x: 0.98529*width, y: 0.66292*height), control1: CGPoint(x: 0.9803*width, y: 0.68143*height), control2: CGPoint(x: 0.98529*width, y: 0.67324*height))
path.addCurve(to: CGPoint(x: 0.96639*width, y: 0.63956*height), control1: CGPoint(x: 0.98529*width, y: 0.65018*height), control2: CGPoint(x: 0.97794*width, y: 0.63956*height))
path.addCurve(to: CGPoint(x: 0.9333*width, y: 0.65079*height), control1: CGPoint(x: 0.95588*width, y: 0.63956*height), control2: CGPoint(x: 0.94564*width, y: 0.65079*height))
path.addCurve(to: CGPoint(x: 0.86686*width, y: 0.52093*height), control1: CGPoint(x: 0.8947*width, y: 0.65079*height), control2: CGPoint(x: 0.93225*width, y: 0.52093*height))
path.addCurve(to: CGPoint(x: 0.69302*width, y: 0.65595*height), control1: CGPoint(x: 0.80961*width, y: 0.52093*height), control2: CGPoint(x: 0.72006*width, y: 0.65595*height))
path.addCurve(to: CGPoint(x: 0.68671*width, y: 0.64806*height), control1: CGPoint(x: 0.68934*width, y: 0.65595*height), control2: CGPoint(x: 0.68671*width, y: 0.65383*height))
path.addCurve(to: CGPoint(x: 0.70326*width, y: 0.56553*height), control1: CGPoint(x: 0.68671*width, y: 0.63016*height), control2: CGPoint(x: 0.70326*width, y: 0.59709*height))
path.addCurve(to: CGPoint(x: 0.63445*width, y: 0.50485*height), control1: CGPoint(x: 0.70326*width, y: 0.52791*height), control2: CGPoint(x: 0.677*width, y: 0.50485*height))
path.addCurve(to: CGPoint(x: 0.2437*width, y: 0.8935*height), control1: CGPoint(x: 0.40914*width, y: 0.50485*height), control2: CGPoint(x: 0.2437*width, y: 0.74879*height))
path.addCurve(to: CGPoint(x: 0.33456*width, y: 0.99787*height), control1: CGPoint(x: 0.2437*width, y: 0.95449*height), control2: CGPoint(x: 0.27416*width, y: 0.99787*height))
path.closeSubpath()
return path
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment