1

表示レイヤーの最小サイズを計算して、回転に関係なく常にキャンバスを覆うようにする方法を知りたいです。

以下の画像は、幅 1280 x 高さ 800のキャンバス (黒い四角形) を示しています。

キャンバスが 0 度 (画像 1) と 90 度 (画像 2) で完全に覆われるように中央揃えおよび中央登録され、グラデーション表示レイヤーが幅 1280 x 高さ 800から比例してサイズ変更されました (キャンバスと同じサイズ) ) を幅 2048 x 高さ 1280に変更し、元の最小の長さがキャンバスの最大の長さと一致するようにします。ただし、画像 3 に示すように、この基本的なプロポーショナル サイズ変更ロジックを使用すると、一部の角度はキャンバスを完全にはカバーしません。

グラデーション表示レイヤーの最小サイズ (超過分なし) を決定して、角度に関係なく、中央揃えおよび中央登録時に常にキャンバスを覆うようにするにはどうすればよいですか?

ここに画像の説明を入力

4

3 に答える 3

5

長方形ではなく円形のグラデーションレイヤーでそれを行っていたとします。明らかに、円がキャンバスを覆う最小サイズである場合、任意に回転させてもキャンバスを覆うことができます。

その円の直径がキャンバスの対角線です。探している長方形は、その円を含むことができる最小の長方形です。つまり、一辺が円の直径である正方形です。

これにより、「キャンバス」の任意の形状に対する答えが得られます。キャンバス全体を含む目的の回転点に中心がある最小の円を見つける必要があります。

于 2013-01-22T03:52:58.423 に答える
1

回答としての再投稿:

辺が黒い長方形の対角線に等しい正方形だけではないでしょうか。(またはsqrt(1280 ^ 2 + 800 ^ 2))

于 2013-01-22T03:46:36.187 に答える
-1

画面の幅は、少なくともキャンバスの対角線よりも大きくする必要があり、高さは、キャンバスの幅と高さの最大値よりも少なくとも大きくする必要があります。

Width = sqrt(x^2 + y^2) = sqrt(1280^2 + 800^2) = 1509.4
Height = max(x,y) = 1280

ここで、xはキャンバスの幅、yは高さです。

于 2013-01-22T03:27:20.270 に答える