23CGAffineTransformを知るSwiftはじめにSwiftにはCGAffineTransformという構造体が存在します。2Dグラフィックの描画に使われる、アフィン変換を表します。アフィン変換を知らなくても、変更したい値を渡せばスケーリング、回転、移動を行うCGAffineTransformを作成することができて、デフォルトにリセットできる機能があります。CGAffineTransformはUIViewに存在するtransformというPropertyを用いて、Viewに対して変更を加えます。}これはアフィン変換を知らないけど、CGAffineTransformを使っていた自分が、CGAffineTransformの仕組みを理解するための記事になります。アフィン変換とは幾何学の分野で、ある図形を回転させたり引き延ばしたりする変換をアフィン変換と呼ぶ。説明すると、「アフィン変換とは平行移動と線形変換を組み合わせた変換」のこと。)、平行移動があり、これらの組み合わせで表現されます。CGAffineTransformで使用するアフィン変換は、上記の3行3列の行列式で表されます。3列目は常に(0,0,1)ですので、CGAffineTransformのデータ構造には最初の2列のみの値が含まれます。50)のUIViewに対して、どうやって計算しているかを見ていきます。・本来はSwiftにはanchorPointというPropertyで回転など幾何学的変更における中心点が決まっていて、デフォルトでは中央なのですが、今回は左上を設定しています。CGFloat)となっています、angleをラジアンで指定するとiOSでは、正の値は反時計回りの回転を指定し、負の値は時計回りの回転を指定します。macOSでは、正の値は時計回りの回転を指定し、負の値は反時計回りの回転を指定します。40を指定した場合このようにcenterを軸に40度反時計回りに回転します回転するためのアフィン変換の行列はこのようになっており、受け取ったangleを元にsin,cosを割り出し、各値が決定します。計算としては、angleを受け取ったことによって決定した上記の値を回転の計算式に当てはめます。tyを行なっています。上記の式を元に各座標を求めることができます。Yを指定するとViewはそれぞれx,y方向に指定したScaleの倍率分拡大されます。1を指定した場合このように指定した方向に値の倍率分拡大します。Yを元に各値が決定します。ScaleYを行なっています。上記の式を元に各座標を求めることができます。CGFloat)となっています、translationX,Yを指定するとViewはそれぞれx,y方向に指定したtranslationの分移動します。30を指定した場合このように指定した方向に値の分移動します。スケーリングするためのアフィン変換の行列はこのようになっており、受け取ったtranslationX,Yを元に各値が決定します。translationY上記の式を元に各座標を求めることができます。CGFloat)というinitが存在して、今までのいずれかのアフィン変換の行列を指定してあげれば、これからでも操作を行うことが可能です。試しに40度の回転をしてみます。CGFloat)と結果を得ることができます。最後に本来はデフォルトである、中心を軸にした説明を行っていないので、今後加筆していきたいと思います。ありがとうございました。upLoginユーザーは見つかりませんでした。