2

歪んだ画像の現在の角度を取得するにはどうすればよいですか?

それを歪めるために使用するコードは次のとおりです。

CGAffineTransform t = CGAffineTransformMake(1.0, 0.0, tan(angle*(M_PI/480)), 1.0, 0.0, 0.0);
4

3 に答える 3

1

次のようなことを試すことができます:

CGFloat angle = [(NSNumber *)[view valueForKeyPath:@"layer.transform.rotation.z"] floatValue];
于 2012-06-10T19:04:25.117 に答える
1

これを試して:

CGFloat radians = atan2f([self myview].transform.b, [self myview].transform.a);

これにより、任意の の現在の角度を取得できますUIView

ロッキングを続けてください...楽しんでください... :)

于 2013-10-03T14:03:59.483 に答える
0

これを試して:

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 の式を導き出すことができます。

于 2012-06-10T19:17:45.617 に答える