2

Androidスタジオでキャンバスを回転させるための式を書く方法を見つけるために、誰かが私を正しい方向に向けることができますか? ウォッチフェイスを作成しており、提供されたサンプルのコードの一部を使用しましたが、その意味を理解する必要があります。コードの一部を次に示します。

float minuteRotation = time.minute/ 30f * (float) Math.PI

これをダミーの用語に変換できる場合は、それらがどのようにそれらの値に到達するかを理解できます。

4

3 に答える 3

1

単位円を見ると、Math.PI が片側にあり、0 が反対側にある場合、0 は time.minute/30 = 0 * Math.PI = 0 である、または 30 は time.minute/30 * Math.PI であるとします。 PI = 1 * Math.PI = Math.PI 魔女は時計のように単位円の反対側

単位円

于 2015-03-14T04:07:52.400 に答える
1

変数は、分針minuteRotationを正しい位置に描画するためにキャンバスを回転させる必要がある ANGLE を表します。Android API によると、この角度は (度ではなく) ラジアンで指定する必要があるため、値「Math.PI」を使用します。

PI ラジアンは、完全な回転の半分、つまり 180 度 - 半円を表します。それは(あなたが説明した表現で)単にスケーリングファクターとして使用されています。同じ方程式を別の (そしてより明確な) 書き方をすると、次のようになります。

minuteRotation = (time.minute/ 60.0f) * (float) Math.PI * 2.0f

この代替バージョンは、さまざまな数値の意味をより明確にし
ます
。完全な円回転 (つまり 360 度)

したがって、分数「time.minute/60.0」は、現在使用されている 1 時間の分数を表します。これに式 PI*2 を掛けると、角度 (ラジアン) として表される完全な円の等価部分が得られます。

于 2015-03-15T17:09:28.613 に答える
0
canvas.save();
canvas.rotate(45);
canvas.drawRect(166, 748, 314, 890, paint);
canvas.restore();

どこで 45 - 度です

于 2015-03-14T04:58:55.160 に答える