1

任意の幅と高さの長方形があります。X、Y、幅、高さを知っています。長方形が N 度回転したときに右上の座標を解決するにはどうすればよいですか? 軸が揃っていれば、(x、y + width)を単純に解決できることに気付きました。残念ながら、長方形に変換行列を適用してその中心を中心に回転させると、これは当てはまりません。

4

2 に答える 2

1

通常、Flash の表示コードにこの種の処理を行わせるのが最も簡単で最速です。空のスプライトを作成し、追跡するコーナーの長方形の表示オブジェクト内に配置します。次に、選択した座標空間でそのスプライトの位置を見つけます。

var p:Point = new Point(0,0);
myRectangle.myCornerSprite.localToGlobal( p );
someDisplayObject.globalToLocal( p ); // for a coord space besides the stage

これにより、四角形のデザイン (すなわち登録点) について仮定する必要がなくなり、四角形を回転させるだけでなく、歪ませたりスケーリングしたりする必要がある場合でも機能します。さらに、これは、コサインなどの混乱よりも実装と保守がはるかに簡単になります。

(上記のコードは、「右上」が特定のコーナーを参照していると想定していることに注意してください。現時点で最も右上にあるコーナーを調べたい場合は、4 つのコーナーすべてにスプライトを使用して同じことを行うだけです。 、グローバル座標で右上にある方を選択します。)

于 2010-05-03T18:34:40.767 に答える
0

指定された半径の円上の点を計算するだけです。長方形の中心が円の原点になり、角が円周上の点になります。回転を使用して新しいポイントを計算するには、三角法を使用する必要があります。今はこれらすべてを説明する時間はありませんが、ここに私が過去に使用したまともな 2D Javascript ライブラリへのリンクを示します。 Javascript および ActionScript で) を使用して、自分で解決してください。

http://jsdraw2d.jsfiction.com/viewsourcecode.htm

于 2010-05-03T00:03:03.520 に答える