私は次のような角度を適用することができます
double angle = 30;
Rectangle r = new Rectangle();
r.Width = 5;
r.Height = 130;
r.Fill = Brushes.Black;
r.RenderTransform = new RotateTransform(angle);
canvas1.Children.Add(r);
しかし、角度の値を取り戻す方法がわかりませんか ?
回転変換を保存して、後でアクセスできます。
RotateTransform rTransform = new RotateTransform(angle);
...
var temp = rTransform.Angle;
RenderTransform
要素を にキャストし、(キャストが成功した場合)プロパティRotateTransform
から角度値を取得することをいつでも試みることができます。Angle
var element = canvas1.Children[0];
var transform = element.RenderTransform as RotateTransform;
var angle = transform != null ? transform.Angle : 0.0;
変換は3x3行列です。ここで回転固有のビットについて読むことができます
プロパティを使用してマトリックスにアクセスできますRenderTransform.Value
(以前に理論化されたように、コードを頭の後ろに差し込むことによってではありません)
、、、および値を使用Matrix.M11
して角度を計算してください。Matrix.M12
Matrix.M21
Matrix.M22