歪んだ画像の現在の角度を取得するにはどうすればよいですか?
それを歪めるために使用するコードは次のとおりです。
CGAffineTransform t = CGAffineTransformMake(1.0, 0.0, tan(angle*(M_PI/480)), 1.0, 0.0, 0.0);
歪んだ画像の現在の角度を取得するにはどうすればよいですか?
それを歪めるために使用するコードは次のとおりです。
CGAffineTransform t = CGAffineTransformMake(1.0, 0.0, tan(angle*(M_PI/480)), 1.0, 0.0, 0.0);
次のようなことを試すことができます:
CGFloat angle = [(NSNumber *)[view valueForKeyPath:@"layer.transform.rotation.z"] floatValue];
これを試して:
CGFloat radians = atan2f([self myview].transform.b, [self myview].transform.a);
これにより、任意の の現在の角度を取得できますUIView
。
ロッキングを続けてください...楽しんでください... :)
これを試して:
CGFloat skew_c = [(NSNumber *)[view valueForKeyPath:@"layer.transform.c"] floatValue];
キーパスは推測されますが、機能するはずです。CGAffineTransformMake ドキュメント.
編集:
CGAffineTransform が 4x4CATransform3D
マトリックスに変換されているようです。
transform
タイプのプロパティですCALayer
of CATransform3D
。
つまり、次のような呼び出しでm11
..m44
パラメータにアクセスできます。
CGFloat m11 = [(NSNumber *)[view valueForKeyPath:@"layer.transform.m11"] floatValue];
...
...
CGFloat m44 = [(NSNumber *)[view valueForKeyPath:@"layer.transform.m44"] floatValue];
スキュー係数を取得するには、いくつかの計算を行う必要があります。この素晴らしい回答から c_factor の式を導き出すことができます。