2016-08-12 6 views
0

回転していない四角形にも機能するサイズ変更機能がありますが、回転した四角形でも機能するようにする必要があります。私の考えは回転した矩形のバウンディングボックスのサイズを変更することですその後、内部の回転長方形に収まる...残念ながら、私は...ここでそれを把握することはできません、私が持っている変数は次のとおりです。バウンディングボックスに合わせて回転した矩形をスケールする

cW = currentRotatedRectangleWidth 
cH = currentRotatedRectangleHeight 
rad = angleOfRotation 
cBW = currentRotatedRectangleBoundingWidth 
cBW = Math.abs(cH * Math.sin(rad)) + Math.abs(cW * Math.cos(rad)) 
cBH = currentRotatedRectangleBoundingHeight 
cBH = Math.abs(cH * Math.sin(rad)) + Math.abs(cW * Math.cos(rad)) 
nBW = newBoundingWidth 
nBH = newBoundingHeight 
dx = differenceWidth = (cBW - cW)/2 
dy = differenceHeight = (cBH - cH)/2 

enter image description here

だから私はに回転した矩形に合わせて必要寸法のバウンディングボックスnBW * nBH

答えて

0

nBW/nBH比が理想的な比と異なる場合があります。回転矩形に合わせるには、垂直/水平係数から最小値を選択する必要があります。

CoeffH = nbW/cBW 
CoeffV = nbH/cBH 
Coeff = Min(CoeffH, CoeffV) 

ここで、線形サイズにCoeffを乗算します。

+0

私は試しましたが、うまくいきません。 – user124678

+0

間違いなく動作するはずです。どのようにこのアプローチを適用し、何が間違っていますか? – MBo

+0

私は間違いを犯しました。今は完璧に働いています:)ありがとう – user124678

関連する問題