#はじめに
iOS/macOS向けのアプリ開発でアイコンやボタンなど簡単な図形を描きたい場合に、UIBezierPathやNSBezierPathを使います。毎回パスを描く際に、紙に図を書いて頂点の相対距離などを計算して出していました。そこで、IllustratorなどのSVGのパスをそのままUIBezierPathにしてしまおうと思いました。
Google先生に質問してみると、すでに目的を達成していそうなものがありました。が、全てのパス形式に対応していた様ではなかったので自分なりに作り直してみました。
#できたツール
http://svg-converter.kyomesuke.com/
![svg.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F67153%2F57ccdef0-06da-3fb8-a6d7-7e4441374ef8.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b847bf564fc62e5e6caab181cce40e2e)
上のテキストエリアにSVGのパスデータを貼り付け、目的の変換ボタンを押すことで下のテキストエリアにコードが生成されます。iOS開発の場合はUIBezierPathですが、macOSの場合はNSBezierPathなので、そこも対応してみました。
#補足
ドーナツ型などくり抜き型については別々にパスを描いてBezierPathのコードに手を加える必要があります。
また、大きさや位置を変更したい場合はAffineTransform
を使う必要があります。
SVGをUIBezierPathにするライブラリが存在していますが、どうしてもベタ打ちで描きたいという方はどうぞ。