2

キャンバス上の特定の x、y、w、h に角丸長方形があります。最初に context.translate を実行して、オブジェクトを必要な場所に取得します。次に、オブジェクトを回転させるときに、必要な数学を計算する際に問題が発生します。

単純な context.rotate(Math.PI/180 * 25) を実行して 25 度回転させることができますが、x、y から回転します。回転点を x + (w/2) と y + (w/2) のようにシフトしたいのです。

回転メソッドに別のポイントを中心に回転するように指示する方法がわかりません。通常のように回転させる必要があると思いますが、おそらく回転に基づいてx、yを再計算しますか?

4

1 に答える 1

0

キャンバスは常に原点(0,0)を中心に回転します。このctx.translateコマンドは原点をシフトするものと考えることができるため(x+w/2, y+h/2)、長方形の中心を中心に回転する場合は、回転する前に平行移動する必要があります。

(そしてもちろん、後で翻訳し直す​​か、andを使用saveしますrestore

于 2012-12-26T00:01:33.750 に答える