1. ホーム
  2. actionscript-3

回転した矩形からバウンディングボックス座標を計算する

2023-09-21 01:08:28

質問

長方形の左上の点の座標と、その幅、高さ、0~180および-0~180の回転があります。

私は、長方形の周りの実際のボックスの境界座標を取得しようとしています。

バウンディングボックスの座標を計算する簡単な方法は何ですか?

  • 最小 y、最大 y、最小 x、最大 x?

A点は必ずしもmin y境界上にあるとは限らず、どこにあってもかまいません。

必要であれば、as3のtransformツールキットのmatrixを使用することができますね。

どのように解決するのですか?

  • 四隅の座標を変換する
  • 4つのxの最小値を次のように求めます。 min_x
  • 4つのxのうち最大のものを求め、それを max_x
  • y の場合も同様
  • バウンディングボックスは (min_x,min_y), (min_x,max_y), (max_x,max_y), (max_x,min_y)

AFAIK、もっと早く行ける王道はないんだ。

座標変換の方法に迷ったら、試してみてください。

x2 = x0+(x-x0)*cos(theta)+(y-y0)*sin(theta)
y2 = y0-(x-x0)*sin(theta)+(y-y0)*cos(theta)

ここで、(x0,y0) は回転する中心です。 三角関数(度数またはラジアンを期待するか)、座標系の意味/符号、角度を指定する方法などに応じて、これをいじる必要があるかもしれません。